に参加する上での条件にする方法:私はこのような2つのテーブルを持っている場合は、テーブルに
場所:
loc_id loc_name
1 xx
2 yy
3 zz
グループ:今
grp_id loc_id
3 2
場合私にはグループがあります。私は全体の場所のテーブルが欲しい。
私はこのようなクエリを実行します。一致Location
レコードがある場合
SELECT loc_id, loc_name
FROM Location l
WHERE EXISTS (SELECT *
FROM Group g
WHERE l.loc_id = g.loc_id AND
g.grp_id = 3)
UNION ALL
SELECT loc_id, loc_name
FROM Location
WHERE NOT EXISTS (SELECT *
FROM Location l
JOIN GROUP g ON l.loc_id = g.loc_id
WHERE g.grp_id = 3)
:
select distinct a.loc_id , a.loc_name
from Location a LEFT join Group b
on a.loc_id = b.loc_id
where (b.grp_id = 3 OR (b.group_id IS NULL))
しかし、私は
MS SQL ServerとInformixは、2つの異なる製品です。あなたはどちらを使っていますか? – jarlh
@jarlh:私は 'もちろんのinformix' –
を使用し、あなたはすべての場所を取得する:最初の左の参加ということがあり、その後、あなたのb.grp_idがnullである...あなたが達成したい何をすべきか? – Pras