2

結合する 3 つのテーブルがあるクエリに取り組んでいますが、3 番目のテーブルには関連するレコードがある場合とない場合があります。

私は現在持っています:

  SELECT table1.val, table2.val, table.3.val 
  FROM
      table1
      LEFT JOIN table2
          ON table1.val = table2.val
      LEFT JOIN table3 
          ON table.3.val = table2.val
  WHERE
      table1.name = "name" 
      AND table3.name = 'certain name'
  ORDER BY table1.val ASC

'certain name'ifが に存在しない場合、その部分がand節table3から省略されるようにするにはどうすればよいでしょうか? 実際にはさらにいくつかのフィールドを選択していますが、これで問題が十分に示されるはずです。WHERESELECT

4

1 に答える 1

1

結果フォームtable3のみが表示される必要があることを意味する場合、table3.valtable2.valAND であるtable3.name必要がある と等しい場合は、次の'certain name'ようになります。

SELECT table1.val, table2.val, table.3.val 
FROM table1
LEFT JOIN table2
ON table1.val = table2.val
LEFT JOIN table3 
ON table.3.val = table2.val AND table3.name = 'certain name'
WHERE table1.name = "name" 
ORDER BY table1.val ASC

結局のところ、これは何のためのものLEFT JOINです...

于 2012-10-21T20:33:50.517 に答える