de-vraag
  • 質問
  • タグ
  • ユーザー
通知:
報酬:
登録
登録すると、質問に対する返答やコメントが通知されます。
ログイン
すでにアカウントをお持ちの方は、ログインして新しい通知を確認してください。
追加された質問、回答、コメントには報酬があります。
さらに
ソース
編集
Vael Victus
Vael Victus
質問

LEFT JOINを押すか、追加のテーブルを選択するだけですか?

私は明示的にLEFT JOINと言うだけでなく、単に互いに値を結合することの間のスピードについて疑問に思っています。ここでは、

SELECT example.id FROM example
LEFT JOIN finals ON example.id = finals.account_id";

対

SELECT example.id, finals.account_id
FROM example, finals
WHERE example.id = finals.account_id

私は、最初は速いとはほとんど確信していますが、私はそれを示唆する答えを見つけることができません。 (私は実際に何を 'コール'して2番目のものかを実際には分かっていない、私はそれをソフトジョインと呼びます)

0 2011-10-27T22:27:06+00:00 4
プログラミング
php
mysql
join
left-join
Mark Byers
27日 10月 2011 в 10:29
2011-10-27T22:29:46+00:00
さらに
ソース
編集
#56793591

これらのクエリには semic の違いがあります。

最初の結合は、左の表のすべての行を含むOUTER JOINです。 2番目はINNER JOINであり、一致しない行は含まれません。

LEFT JOIN の代わりに JOIN を記述した場合は、読みやすさと保守性のために最初の構文が優先される点を除いて、2つのクエリは同じです。

私は実際に何を 'コール'するのかは分かりませんが、ソフト・ジョインと呼んでいます)

2番目の構文は、MySQLが "カンマ演算子"と呼ぶものを使用します。これは、暗黙的な結合と呼ばれることもあります。 ANSI-89 join とも呼ばれます。

2
0
Basic
27日 10月 2011 в 10:30
2011-10-27T22:30:27+00:00
さらに
ソース
編集
#56793593

2番目は INNER JOIN (デフォルト)であり、出力よりスピードの問題は少ないです。内部結合は、指定されたフィールドが両方のテーブルのどこにあるかを返すだけです。

account_id が3の example レコード#3ではなく finals レコードがある場合、

一致するファイナルレコードがない場合でも LEFT JOIN は example のレコードをリストします - 欠落しているフィールドはNULLに設定されます

2
0
Dylan Smith
27日 10月 2011 в 10:30
2011-10-27T22:30:22+00:00
さらに
ソース
編集
#56793592

この2番目の例は、INNER JOINを実行し、潜在的に異なる結果を返します。

0
0
Explosion Pills
27日 10月 2011 в 10:31
2011-10-27T22:31:11+00:00
さらに
ソース
編集
#56793594

異なる結果をもたらすので、2つのスピードを実際に比較することはできません。 2番目のクエリでは、両方のテーブルにエントリが必要です。最初のクエリでは、最初のテーブルのエントリのみが必要です。

2番目のクエリはCROSS JOINを使用しています(mysqlのJOINとの違いはありません..カンマはON句のないJOINのエイリアスです)。

0
0
関連コミュニティ 1
PHP - 日本のコミュニティ
PHP - 日本のコミュニティ
5 ユーザー
このグループではPHPについて話します。 @vue_ja @react_ja @js_ja @angular_ja
開く telegram
質問の追加
カテゴリ
すべて
技術情報
文化・レクリエーション
生活・芸術
科学
プロフェッショナル
事業内容
ユーザー
すべて
新しい
人気
1
Roxana Elizabeth CASTILLO Avalos
登録済み 16時間前
2
Hideo Nakagawa
登録済み 1日前
3
Sergiy Tytarenko
登録済み 3日前
4
shoxrux azadov
登録済み 5日前
5
Koreets Koreytsev
登録済み 1週間前
© de-vraag :年
ソース
stackoverflow.com
ライセンス cc by-sa 3.0 帰属