違いは何ですか ?
SELECT u.id,u.name,u.email,d.city,d.state
from users u, userdetails d
where u.id=d.uid
SELECT u.id,u.name,u.email,d.city,d.state
from users u join userdetails d on u.id=d.uid
両方とも異なる書き方ですか?どちらが速いですか?
結合オプションを選択すると、より多くの制御が可能になり、さまざまなタイプの結合 (内部、左など) を調べて、例に必要なものを正確に把握できます。
(インナーがベストだと思います)
変数は各データセットで同じ名前を持っていない可能性があるため、自然結合は使用できません。同じステートメントで 3 つ以上のテーブルを結合することも可能です。変換や条件付きロジックを実行することもできます。
これ:
SELECT u.id,u.name,u.email,d.city,d.state
FROM users u, userdetails d
デカルト積(順序付けられたすべてのペアの集合) です。
where 句を追加すると、次のようになります。
SELECT u.id,u.name,u.email,d.city,d.state
FROM users u, userdetails d
WHERE u.id=d.uid
結合(それぞれに共通の値を使用して 2 つのテーブルのフィールドを結合する) を取得します。これは次と同等です。
SELECT u.id,u.name,u.email,d.city,d.state
FROM users u join userdetails d on u.id=d.uid