Tôi muốn nhận dữ liệu nếu orgid = 2
hoặc nếu không có hàng nào cả cho số uid
. orgid
là integer
. Điều gần nhất tôi có thể nghĩ đến là làm IS NULL
nhưng tôi không nhận được dữ liệu cho số uid
không có hàng orgid
. Bất kỳ ý tưởng?Truy vấn nơi cột khóa ngoài có thể là NULL
select u.uid,u.fname,u.lname from u
inner join u_org on u.uid = u_org.uid
inner join login on u.uid = login.uid
where u_org.orgid=2 or u_org.orgid is NULL
and login.access != 4;
Về cơ bản, OR
là nếu u_org.orgid
hàng không tồn tại.
Đoán của tôi ... bạn đang thiếu dấu ngoặc đơn? Hãy thử thay vào đó: '(u_org.orgid = 2 HOẶC u_org.orgid IS NULL) VÀ login.access! = 4' – Wolph
Ngoài ra, bạn cũng có thể giải quyết nó như sau:' COALESCE (u_org.orgid, 2) = 2' – Wolph
@ WoLpH - cả hai đều không giải quyết được. Có lẽ 'IS NULL' là điều sai trái? Có NULL không nếu hàng không tồn tại trong cơ sở dữ liệu? – user983223