2011-02-06 21 views
18

1つのクエリで2つの内部結合をどのようにプリフォームしますか?2つの内部結合MYSQL

例:3つのテーブル

請求書
住所
クライアント

請求書は、クライアントにIDを参照する列を持っています。また、アドレスを参照する列もあります。一致するテーブルのクライアント名と一致するテーブルのアドレスの両方を取得する必要があります。どのように私はINNER JOIN両方のテーブルですか?
請求書は、行アドレス(参照がIDに対応)、クライアント(参照クライアントID)、IDを持っており、 クライアントは、行のFIRST_NAMEを持っているノート、私はいくつかの詳細を追加します

は...、 アドレスは行がstreet_nameと都市があるLAST_NAME

私のような

+0

詳細データが必要です。 –

答えて

29

クエリに必要な数のJOIN句を含めることができます。それぞれには、結合されたテーブル間の関連する列を指定するON句があります。

SELECT 
    columns 
FROM 
    invoice 
INNER JOIN 
    address 
ON 
    join_condition 
INNER JOIN 
    client 
ON 
    join_condition 
+0

私はこれを知らなかった。知っておいてよかった。ありがとう! – Yoshiyahu

8

何かプルアップする必要があります(すべての)*、あなただけが必要なフィールドを選択しないことを忘れないでください

SELECT 
    c.*, i.*, a.* 
FROM 
    invoices i 
INNER JOIN 
    client c 
ON 
    i.clientid = c.clientid 
INNER JOIN 
    address a 
ON 
    a.clientid = c.clientid 
WHERE 
    i.id = 21 

を。

+0

これは何も起こらないでしょうか? – Yoshiyahu

+0

おっと、忘れてしまった。編集を参照してください。 – Prisoner

+0

それは働いた、ありがとう –

関連する問題