• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:LEFT JOINが2つあるSQL文でANDの意味)

LEFT JOINが2つあるSQL文でANDの意味

このQ&Aのポイント
  • LEFT JOINが2つあるSQL文でANDの意味を教えてください。
  • このSQL文は3つのテーブルを結合しています。左テーブルは「alive a」というテーブルで、その右に2つのテーブルが結合しています。
  • また、このSQL文ではANDが使用されていますが、これは通常のAND演算子とは異なり、特定の条件に基づいて結合されるデータをフィルタリングするためのものです。ANDの前には論理式があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • lot2000
  • ベストアンサー率50% (2/4)
回答No.1

>・LEFT JOINが2つあるので、3つのテーブルを結合しているのでしょうか? はいそうです。 >左テーブルは「alive a」で、この右側に2つのテーブルが結合している、という認識でよいでしょうか? はいそうです。(alive→beingって言うような意味です。) >・上記内容をネットで見かけたのですが、「AND」は、「WHERE」の前に来てもいいのでしょうか? 「AND]は「WHERE」にかかっているのではなく「LEFT 」の結合の条件となります。 SELECT a.*, b.being_name FROM alive a LEFT JOIN being b ON a.hoge_id = b.id LEFT JOIN call c ON (c.call_id = a.hoge_id AND f.hoge_id = 12) WHERE f.hoge_id = 12 OR b.id = 12 <<追記>> このSQLにはfというテーブルが存在しないのでエラーとなります。

re999
質問者

お礼

回答ありがとうございました。 大変参考になりましたー >LEFT JOIN call c ON (c.call_id = a.hoge_id AND f.hoge_id = 12) かっこで括っていただいので、分かりやすかったです >このSQLにはfというテーブルが存在しないのでエラーとなります。 失礼しました。こちらは、書き写し間違いでした

その他の回答 (1)

回答No.2

>・LEFT JOINが2つあるので、3つのテーブルを結合しているのでしょうか? その通りです、alive、being、callの3つのテーブルを結合しています。 >左テーブルは「alive a」で、この右側に2つのテーブルが結合している、という認識でよいでしょうか? そのように解釈されて問題無いと思います。 >「AND」は、「WHERE」の前に来てもいいのでしょうか? WHERE以降のANDは結合後のテーブルに対する条件です、WHEREの前に来ると、最後のLEFT JOIN ON側の条件になるので、意味が異なります。

re999
質問者

お礼

回答ありがとうございました >WHERE以降のANDは結合後のテーブルに対する条件です、WHEREの前に来ると、最後のLEFT JOIN ON側の条件になるので、意味が異なります なるほど。ANDの使い方には、色々あったんですね。 どうして、こんなところ(WHEREの前)に、ANDがあるのか分からなかったのですが、 おかげで疑問が解決しましたー

関連するQ&A

専門家に質問してみよう