我有一個MySQL查詢,根據表格與第三個表格的關係連接一個2個表格,但它似乎並不總是工作正常。查詢是:加入不直接相關的MySQL表格
SELECT a.ID, a.ECPCodeID, a.RegDate, a.BusName, b.ID as RepCodeID, b.RepCode
FROM ECPs_Registration a, Reps_Codes b
WHERE SUBSTR(a.ZipCode,1,5)
IN (
SELECT SUBSTR(c.Zip,1,5)
FROM Reps_Zip c
WHERE c.RepCodeID = b.ID
)
ORDER BY b.RepCode,a.BusName
如果我拿出Rep_Codes表從主加盟,並把它放在Reps_Zip選擇,它的工作原理,但我沒有得到來自Reps_Codes表,我需要的字段:
SELECT a.ID, a.ECPCodeID, a.RegDate, a.BusName
FROM ECPs_Registration a
WHERE SUBSTR(a.ZipCode,1,5)
IN (
SELECT SUBSTR(c.Zip,1,5)
FROM Reps_Zip c, Reps_Codes b
WHERE c.RepCodeID = b.ID
)
ORDER BY a.BusName
我該如何改變它以獲得與第二個查詢相同的結果,但在結果中獲取Reps_Codes字段?
編輯:
我得到相同的結果作爲第一個查詢,如果我做的:
SELECT a.ID, a.ECPCodeID, a.RegDate, a.BusName, b.ID as RepCodeID, b.RepCode
FROM ECPs_Registration a, Reps_Codes b, Reps_Zip c
WHERE SUBSTR(a.ZipCode,1,5) = SUBSTR(c.Zip,1,5) AND c.RepCodeID = b.ID
ORDER BY b.RepCode,a.BusName
我所尋找的是讓ECPs_Registration表的所有記錄,然後得到一些信息來自Reps_Codes表的那條記錄。 Reps_Codes通過第三個表Reps_Zip連接到ECPs_Registration。
我意識到是這樣,只是不知道如何與他們聯繫。我在另一個我試過的查詢上面加入了一個編輯。表a和b由c連接。 – fanfavorite
@fanfavorite看我的編輯。 – MPelletier
謝謝,這仍然給我與第一次和第三次查詢相同的結果。它顯示比ECPs_Registration中的記錄更多的結果。 – fanfavorite