[英]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.