很抱歉,如果我的標題是不是因爲技術,因爲它應該的,只是新的MySQL的東西。加入關於MySQL + 2 3個表,其中命令
我有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和PC12之間的類似列是"PC01_ONSULTATIONS.PC12_STATUS_CODE_ID" + "PC12_STATUS_CODES.STATUS_CODE_ID"
。如果這是加入到已有的代碼,我有我還需要在另一個「其中」命令添加。究其原因PC12表被加入到代碼,這樣我可以檢索記錄,其中PC12.STATUS_CODE_ID = 2,所以ontop的電流「其中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
謝謝老兄,是它的工作原理! 那麼您是否可以談談我通過你做了什麼快?像我做錯了什麼,以及你如何糾正它?對此,我真的非常感激! – RyanLynch01
爲了在兩個表之間執行「連接(內部連接)」操作,您需要傳遞應該執行「連接」的列。在你的情況下,對於第一個'join',沒有通過任何列。所以它無法加入兩個表中的列。你的邏輯是對的,但是這些陳述的立場是錯誤的。 –
我明白了,是的,它更有意義,你是如何做到的。謝謝你。 – RyanLynch01