2016-12-05 130 views
0

我的sql查詢只返回屬於數據庫中第一個客戶的訂單的結果。我哪裏錯了?SQL查詢只返回第一個客戶的結果

SELECT orders.id, 
     orders.created_at, 
     orders.customer_id, 
     customers.firstname, 
     customers.surname, 
     customers.email, 
     customers.telephone, 
     customer_addresses.address_1, 
     customer_addresses.address_2, 
     customer_addresses.address_2, 
     customer_addresses.city, 
     customer_addresses.county, 
     customer_addresses.post_code 
FROM orders 
INNER JOIN customers ON orders.customer_id = customers.id 
INNER JOIN customer_addresses ON customers.id = customer_addresses.id 
ORDER BY orders.id 
LIMIT 0, 10; 
+1

做其他的客戶有地址嗎? – Vatev

+0

@Vatev客戶有一個必需的address_id字段 – Jack

回答

1

,如果你在你的答覆中提到,以@ ceyquem的回答所有的客戶都ADDRESS_ID,我認爲你的加入customer_address表錯誤的列。它應該是

SELECT orders.id, 
     orders.created_at, 
     orders.customer_id, 
     customers.firstname, 
     customers.surname, 
     customers.email, 
     customers.telephone, 
     customer_addresses.address_1, 
     customer_addresses.address_2, 
     customer_addresses.address_2, 
     customer_addresses.city, 
     customer_addresses.county, 
     customer_addresses.post_code 
FROM orders 
INNER JOIN customers ON orders.customer_id = customers.id 
INNER JOIN customer_addresses ON customers.address_id = customer_addresses.id 
ORDER BY orders.id 
LIMIT 0, 10; 

希望工程

+0

作品非常魅力,謝謝! – Jack

+0

我的榮幸。 :) –

3

如果所有的客戶沒有一個定義的地址,它可能是這個原因,請嘗試更改JOIN操作符如下測試。此外,在年底取消該限制條件,以確保您可以看到所有的結果:

SELECT orders.id, 
     orders.created_at, 
     orders.customer_id, 
     customers.firstname, 
     customers.surname, 
     customers.email, 
     customers.telephone, 
     customer_addresses.address_1, 
     customer_addresses.address_2, 
     customer_addresses.address_2, 
     customer_addresses.city, 
     customer_addresses.county, 
     customer_addresses.post_code 
FROM orders 
LEFT JOIN customers ON orders.customer_id = customers.id 
LEFT JOIN customer_addresses ON customers.id = customer_addresses.id 
ORDER BY orders.id; 
+0

嗨感謝您的答覆,所有的客戶都有一個address_id。 – Jack

+0

查詢是否建議使用LEFT JOIN工作呢? – ceyquem

+0

是第二位顧客現在正在退貨,但分配的地址未被識別和加入,即使它適用於第一位顧客。 – Jack