簡體   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