[英]Joining 3 tables on MySQL + 2 where commands
抱歉,如果我的标题不够技术,应该是MySQL的新知识。
我有3张桌子。
我给每个表起了一个简短的名字,所以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.