私はこれらの行に沿ってクエリを持っています:
SELECT e.firstname, e.surname
FROM employees e, cities c
WHERE e.cityid = c.id
UNION
SELECT e.firstname, e.surname
FROM employees e, cities c
WHERE e.cityid = ''
UNION
SELECT e.firstname, e.surname
FROM employees e, cities c
WHERE e.cityid is null
それは完全にうまくいきますが、私は自分自身を数回繰り返さなければならないのが好きではありません (3 回、2 つの結合で区切られています)。
したがって、次のようにクエリを記述しようとしました。
SELECT e.firstname, e.surname
FROM employees e, cities c
WHERE (e.cityid = c.id OR e.cityid = '' OR e.cityid is null)
これも問題なく動作しますが、ユニオンを使用した最初のクエリに比べて非常に遅くなります。
別の方法でクエリを作成することは可能ですか? 何度か繰り返すことなく、最初のクエリのパフォーマンスを得ることができます。
ありがとう。