2016-04-11 37 views
-1

考慮下列表格。用連接書寫查詢

表名:

order_id client_id order_total order_date ...etc 
======================================================= 
1001  1   $400   04/10/2016 
1002  1   .... 
1003  1   .... 
1004  2   .... 
1005  2   .... 

表名:order_product

order_id  product_id 
1001   p1 
1003   p1 
1002   p4 

我需要編寫一個查詢拉基於產品編號爲特定客戶的所有訂單信息。我的查詢沒有按預期返回。

預期的結果將是,

product_id order_id order_total order_date 
p1   1001  $400  04/10/2016 
p1   1003  $800  ...... 

我的樣本查詢:

select * 
    from client_order co 
    join order_product op 
    on co.order_id = op.order_id 
    where co.client_id = 1 

我不是一個大的數據庫的人,試圖找出一些要求。提前致謝。

回答

0

嘗試下面的查詢,

Select op.product_id,co.order_id,co.order_total,co.order_date 
    From client_order co,order_product op 
Where co.order_id = op.order_id and co.client_id = 1 
+0

這正是我的查詢[你有*列的拼寫,我有*],這是返回一個空的結果集 – Siva

+0

最新結果 –

+0

老兄,如果你拉選擇* .... ..返回兩個表中的所有字段如何相同解釋我。 –

2

您可以使用一個簡單的Inner Join

SELECT 
    op.product_id 
    ,co.order_id 
    ,co.order_total 
    ,co.order_date 
FROM 
    client_order co 
    INNER JOIN order_product op ON co.order_id = op.order_id 
WHERE 
    co.client_id = [client_id] 
+0

我需要把所有的PRODUCT_ID不是特定的一個 – Siva

+0

@Siva確定,_based產品ID特定client_誤導我了一下。我更新了使用內部聯接的答案 – Szeki

+0

內部聯接工作正常。是的,問題是我正在使用加入 – Siva