繁体   English   中英

在MySQL + 2 where命令上联接3个表

[英]Joining 3 tables on MySQL + 2 where commands

抱歉,如果我的标题不够技术,应该是MySQL的新知识。

我有3张桌子。

  • PC01_CONSULTATIONS,
  • PC02_CONSULTATION_TYPES,
  • PC12_STATUS_CODES。

我给每个表起了一个简短的名字,所以PC01_CONSULTATIONS-PC01,PC02_CONSULTATION_TYPES-PC02,PC12_STATUS_CODES-PC12。

我使用每个表中的相似列"PC01_CONSULTATIONS.PC02_CONS_TYPE_ID""PC02.CONS_TYPE_ID"加入了PC01 + PC02 ,其中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和PC12之间的相似列是"PC01_ONSULTATIONS.PC12_STATUS_CODE_ID" + "PC12_STATUS_CODES.STATUS_CODE_ID"

  • 如果将它加入到已经存在的代码中,我还需要添加另一个“ where”命令。 将PC12表连接到代码的原因是,这样我就可以检索PC12.STATUS_CODE_ID = 2的记录。因此,在当前“ PC02.cons_type_id = 1”的基础上,我必须添加“ AND PC12.STATUS_CODE_ID = 2英寸对吗?

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

      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 

尝试这个:

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

您将请求写为false:

这是正确的

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM