2013-08-04 138 views
0

大家好我有三張桌子。獲取一對多關係數據

  1. 客戶(客戶列表)
  2. 付款(客戶付款清單)
  3. 訂單(客戶訂單列表)

客戶可以有多種付款和秩序是一個對很多關係。

我試過下面的查詢,但沒有顯示正確的結果。

select a.name, b.job_date as JobDate, c.order_date as OrderDate from Customers a 
inner join Jobs b on a.id = b.customer_id 
inner join Orders c on a.id = c.customer_id 
where a.id = 1; 

我需要的是展示客戶的訂單和工作。

+0

需要了解更多信息。你有什麼?你想要得到什麼? – RustyH

+0

我需要客戶的付款細節和工作細節 – overflow

+0

您能否提供一些樣品數據和您的查詢結果,以說明您的問題? – peterm

回答

0

嘗試左連接而不是內連接。子表可能沒有與Customers.id = 1關聯的記錄。

select a.name, b.job_date as JobDate, c.order_date as OrderDate from Customers a 
left join Jobs b on a.id = b.customer_id 
left join Orders c on a.id = c.customer_id 
where a.id = 1; 
+0

沒有變化會導致內部連接的行數相同 – overflow

+0

因此您得到一些行,rt?那麼你的問題是什麼? –

0

如果你想獲得的所有訂單,你可以使用以下命令:

select a.name, c.order_date as OrderDate from Orders c 
inner join Customers a on a.id = c.customer_id 
where a.id = 1; 

你得到建立一個類似的查詢來獲取所有員工的工作:

select a.name, b.job_date as JobDate from Jobs b 
    inner join Customers a on a.id = b.customer_id 
    where a.id = 1;