2

重複の可能性:
INNER JOIN ON と WHERE 句

私は約1年前にWeb開発者として始めました。それ以来、私は PHP、mySQL、Javascript、jQuery などを経験してきました。今回、いくつかのことを学んだように思います。しかし、SQLに関しては、私は本当に初心者です。SELECT、INSERT、UPDATE をいくつか実行し、SUM や UNIX_TIMESTAMP などの関数を使用するだけです。

私は JOIN 関数に出くわしました。これはかなり便利なようですが、テーブル間のデータを「結合」するために JOIN またはいくつかの WHERE 句を使用することの違いはわかりません。

参加についてのこの記事(スペイン語)を読みました。そして、私はそれの有用性を本当に見ることができません。例えば:

このデータセットを仮定すると:

id nombre       id  nombre
-- ----         --  ----
1  Pirata       1   Rutabaga
2  Mico         2   Pirata
3  Ninja        3   Darth Vader
4  Spaghetti    4   Ninja

このクエリ:SELECT * FROM TablaA INNER JOIN TablaB ON TablaA.name = TablaB.nameは と同じ結果を生成しませんSELECT * FROM TablaA, TablaB WHERE TablaA.name = TablaB.nameか?

4

2 に答える 2

4

はい、それらは同じ結果を生成しSELECT * FROM TablaA, TablaB WHERE TablaA.name = TablaB.nameますが、結合を実行する古い方法であり、SQL-92 標準を満たしていません。また、クエリが非常に複雑になると、読みにくくなります。明示的に宣言された INNER JOIN 形式に固執することをお勧めします。

于 2012-08-15T23:06:03.127 に答える
2

あなたの例ではたまたま同じ結果が得られますが、他のタイプの結合があることに注意してください-私が通常使用する他の唯一のものはLEFT JOINです-結合の概念は、結果をWHERE句でフィルタリングする概念とは別のものです。場合によっては、そこにすべての結合条件が混在していなくても、WHERE 句が十分に複雑になることがあります。SQL を保守しやすくし、WHERE 句ではなく JOIN 句で結合します。

于 2012-08-15T23:09:09.360 に答える