我想從表中連接兩個表中的4個字段兩次。我嘗試使用兩個LEFT JOIN和兩個WHERE語句,如下所示。目前我只是沒有得到任何結果爲g2.address,g2.latitude,g2.longitude,g2.method。不確定如果我在聲明中出現錯誤或者與我的數據相關的其他明顯錯誤。任何幫助,將不勝感激。LEFT JOIN兩次形成相同的表
1日嘗試:
SELECT p.q_id, p.first_name, p.surname, p.gender, p.age, p.race,
p.q2_7, p.q2_8_1, p.q2_8_2, p.q2_8_3, p.q2_8_4, p.q2_8_5,
p.q2_8_6, p.q2_8_7, p.q2_8_8, p.q2_9, p.q2_10, p.q2_11,
p.q2_11_1_1, p.q2_11_1_2, p.q2_11_1_3, p.q2_11_1_4,
p.q3_1, p.q3_2, p.q3_2_1, p.q3_3, p.q3_4, p.q3_5,
g1.address, g1.latitude, g1.longitude, g1.method,
p.q3_7, p.q3_8, p.q3_9, p.q3_10, p.q3_11_1, p.q3_11_2,
p.q3_11_3, p.q3_12, p.q3_13, p.q4_1,
g2.address, g2.latitude, g2.longitude, g2.method,
p.q4_3, p.q4_4, p.q4_5, p.q5_0_1, p.q5_0_2, p.q5_0_3,
p.q5_1, p.q5_2, p.q5_3
FROM people AS p
LEFT JOIN gmap_address_list AS g1 ON p.q3_6 = g1.id
LEFT JOIN gmap_address_list AS g2 ON p.q4_2 = g2.id
GROUP BY p.q_id
第二嘗試
SELECT p.q_id, p.first_name, p.surname, p.gender, p.age, p.race,
p.q2_7, p.q2_8_1, p.q2_8_2, p.q2_8_3, p.q2_8_4, p.q2_8_5,
p.q2_8_6, p.q2_8_7, p.q2_8_8, p.q2_9, p.q2_10, p.q2_11,
p.q2_11_1_1, p.q2_11_1_2, p.q2_11_1_3, p.q2_11_1_4, p.q3_1,
p.q3_2, p.q3_2_1, p.q3_3, p.q3_4, p.q3_5,
g1.address, g1.latitude, g1.longitude, g1.method,
p.q3_7, p.q3_8, p.q3_9, p.q3_10, p.q3_11_1, p.q3_11_2,
p.q3_11_3, p.q3_12, p.q3_13, p.q4_1,
g2.address, g2.latitude, g2.longitude, g2.method,
p.q4_3, p.q4_4, p.q4_5, p.q5_0_1, p.q5_0_2, p.q5_0_3,
p.q5_1, p.q5_2, p.q5_3
FROM people p, gmap_address_list g1, gmap_address_list g2
WHERE p.q3_6 = g1.id AND p.q4_2 = g2.id
ORDER BY p.q_id
第一查詢看起來syntaxically正確的重複條目,但「慷慨」組由MySQL的可能會給出奇怪的結果。沒有group by子句,你會得到結果嗎? –
第一個查詢看起來很好。使用'SELECT COUNT(*)FROM people p JOIN gmap_address_list g ON p.q3_6 = g.id;'和另一個類似的查詢來檢查你的數據。如果你從兩者中得到零計數,那麼你只是沒有匹配的行。 –
當我在cPanel中運行第一個查詢時,我得到了正確的結果。問題可能是我將結果保存到PHP中的數組中,並且我有數組單元格名稱重複地址,緯度,經度,q3_6和q4_2的方法。我將如何解決這個問題? – Rynardt