在MySQL + 2上加入3个表来执行命令

时间:2015-01-12 10:36:05

标签: mysql join

很抱歉,如果我的标题不像它应该的技术那样,只是MySQL的新东西。

我有3张桌子。

  • PC01_CONSULTATIONS,
  • PC02_CONSULTATION_TYPES,
  • PC12_STATUS_CODES。

我给每张桌子写了一个短名称,所以PC01_CONSULTATIONS - PC01,PC02_CONSULTATION_TYPES - PC02,PC12_STATUS_CODES - PC12。

我使用PC01 + PC02"PC01_CONSULTATIONS.PC02_CONS_TYPE_ID" "PC02.CONS_TYPE_ID"的每个表中的类似列加入PC02.CONS_TYPE_ID = 1 select * from PC01_CONSULTATIONS PC01 join PC02_CONSULTATION_TYPES PC02 on PC01.pc02_cons_type_id = PC02.CONS_TYPE_ID where PC02.cons_type_id = 1 这是我用的代码

"PC12_STATUS_CODES"
  • 最初工作得很好,但现在除了这一切之外我还需要加入第三个表"PC01_ONSULTATIONS.PC12_STATUS_CODE_ID" + "PC12_STATUS_CODES.STATUS_CODE_ID"。 PC01和PC12之间的类似列是 select * from PC01_CONSULTATIONS PC01 join PC02_CONSULTATION_TYPES PC02 join PC12_STATUS_CODES PC12 on PC01.PC02_CONS_TYPE_ID = PC02.CONS_TYPE_ID on PC01.PC12_STATUS_CODE_ID = PC12.STATUS_CODE_ID where PC02.CONS_TYPE_ID = 1 and PC12.STATUS_CODE_ID = 2

  • 如果将其加入到现有代码中,我还需要添加另一个“where”命令。 PC12表加入代码的原因是我可以检索PC12.STATUS_CODE_ID = 2的记录。所以当前“其中PC02.cons_type_id = 1”的ontop我必须添加“AND PC12.STATUS_CODE_ID = 2“对吗?

  • 我所做的代码(显然不起作用)如下,任何有关如何正确创建此代码的提示我可以检索正确的记录将非常感激。谢谢。

    {{1}}

2 个答案:

答案 0 :(得分:0)

试试这个:

select * from PC01_CONSULTATIONS PC01    
    join PC02_CONSULTATION_TYPES PC02 on PC01.PC02_CONS_TYPE_ID = PC02.CONS_TYPE_ID
    join PC12_STATUS_CODES PC12 on PC01.PC12_STATUS_CODE_ID = PC12.STATUS_CODE_ID
    where PC02.CONS_TYPE_ID = 1 and PC12.STATUS_CODE_ID = 2

答案 1 :(得分:0)

你写的请求是假的:

这是正确的

select * from PC01_CONSULTATIONS PC01    
join PC02_CONSULTATION_TYPES PC02    
on PC01.PC02_CONS_TYPE_ID = PC02.CONS_TYPE_ID
join PC12_STATUS_CODES PC12    
on PC01.PC12_STATUS_CODE_ID = PC12.STATUS_CODE_ID    
where PC02.CONS_TYPE_ID = 1 and PC12.STATUS_CODE_ID = 2