0

次のようなクエリを書いたとき..すべてのレコードの組み合わせが書かれています。クエリの間違いは何ですか?

SELECT ven.vendor_code, add.address1 
    FROM vendor ven INNER JOIN employee emp 
    ON ven.emp_fk = emp.id 
    INNER JOIN address add 
    ON add.emp_name = emp.emp_name;
4

1 に答える 1

1

ON内部結合を使用すると、2 つのテーブル間のすべてのリンク (関係) を句に入れる必要があります。

関係が良好であると仮定すると、次のクエリをテストして、すべてのレコードの組み合わせが実際に作成されるかどうかを確認できます。

SELECT count(*)
from vendor ven
inner join employee emp on ven.emp_fk = emp.id 
inner join address add on add.emp_name = emp.emp_name;

SELECT count(*)
       add.address1
from vendor ven, employee emp, address add

両方のクエリが同じ結果を返す場合 (これは疑問です)、あなたの言うとおりです。

そうでない場合は、私が推測するように、結果の数をフィルタリングするための関係または制限が欠落している可能性があります。

于 2012-06-27T12:40:16.940 に答える