[英]How use SQL CASE & COUNT in JOIN Table
在此處輸入圖像描述我想使用連接查詢將學生的許可狀態匯總為單個結果。 tbl_student和tbl_trns_clr示例如果所有辦公室狀態都已清除,則備注清除,否則如果一個辦公室未清除,則備注不清除
SELECT *
FROM `tbl_student` as A join
`tbl_trns_clr` as B
on B.EDP = A.EDP AND
CASE WHEN (SELECT COUNT(*)
FROM tbl_trns_clr
WHERE B.clr_status = 'Not Cleared' AND A.EDP = B.EDP
) = 0 THEN 'Cleared'
END) as clr_status
我想讓它看起來像桌面用戶界面
您似乎只想在SELECT
使用標量表達式,而不是顯式JOIN
:
SELECT s.*,
(CASE WHEN EXISTS (SELECT 1
FROM tbl_trns_clr c
WHERE c.clr_status = 'Not Cleared' AND
c.EDP = s.EDP
)
THEN 'Cleared' ELSE 'Not Cleared'
END) as clr_status
FROM `tbl_student` s;
筆記:
A
和B
這樣A
隨機字母只會使查詢難以理解。 COUNT(*)
。 NOT EXISTS
更合適,性能更好 - 因為它可以停在匹配的第一個值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.