2012-05-14 63 views
0

我有2個表(客戶端和client_forms)。客戶端總是一個實例(因爲它涉及到一個人,但他們每年填寫一個表單(1 - 0.n)。我需要一個MySQL語句爲每個客戶端選擇所有表單,但我不確定如何做到這一點。它會使用某種嵌套查詢的?從一個表中選擇1條記錄,從另一個表中選擇0.n

回答

2

我建議你讀入JOIN syntax。從本質上講,你得寫

SELECT * 
FROM clients 
[LEFT OUTER] JOIN client_forms ON [put the join condition here] 

我不知道,如果你需要這成爲LEFT OUTER JOIN(總是每個客戶端至少返回一條記錄)或INNER JOIN(每個客戶端和表單返回一條記錄)

+0

哪種類型的加盟使得1-0.n加入? –

+0

LEFT OUTER JOIN,正如Lukas在他的詢問中提出的那樣。 –

+0

您可能想要使用'LEFT OUTER JOIN',因爲您可能總是希望每個客戶端至少有一個結果記錄。您可以在手冊中找到更多信息 –

0
select 
    * 
from 
    clients 
    join clent_forms on client_forms.client_id=clients.client_id 

將返回所有客戶端及其所有表單 - 假定兩個表中都有一個client_id列標識客戶端。它不會返回沒有任何表單的客戶。

如果你想也沒有形式的客戶機,你需要一個outer加入:

select 
    * 
from 
    clients 
    left outer join clent_forms on client_forms.client_id=clients.client_id 
相關問題