2015-06-20 84 views
0

我正在開發一個網站,其中有兩個表。 訂單託運人。 一個非常基本的結構如下,Mysql加入兩個表獲取相關數據

orders 
======= 
order_id 
shipper_id 
customer_id 
order_date 
order_item 

shipper 
========= 
shipper_id 
shipper_name 

我想列出所有訂單連同它的發貨人姓名。例如

order_id | customer_id | order_date | order_item | shipper_name 

現在託運人表中的訂單表和3行(三個託運人)有2行(兩個訂單)。

當我運行下面的查詢,但它顯示重複的記錄。即2次3次(2 * 3 = 6行)。爲什麼不只是2個訂單和託運人信息?

SELECT * FROM orders o, shippers s ORDER BY order_date DESC 

注意:這個查詢可以工作,但我不確定天氣是否是標準的方法。

SELECT * FROM orders o, shippers s GROUP BY o.order_id ORDER BY order_date DESC 

我聽說過表連接。這種情況下使用連接嗎?我開發了許多動態網站,但這個問題真的讓我困惑。

+0

ü沒有聯接發生。它無法讀懂你的想法 – Drew

回答

1

加入可以在查詢中使用如下:

select orders.order_id, orders.customer_id, orders.order_date, orders.order_item, shipper.shipper_name from orders left join shipper on orders.shipper_id=shipper.shipper_id; 

,或者你可以如下使用:

select o.order_id, o.customer_id, o.order_date, o.order_item, s.shipper_name from orders o left join shipper s on o.shipper_id=s.shipper_id; 
+0

別名可能有用 – Drew

+0

不錯。結果如預期。我在編程但在菜單中選擇:( –

+1

@SohanPatel:太好了,它幫助了你.. :)也接受我的答案。 – AnkiiG