我有如下表獲取與參考表不同的狀態相同主鍵列
id task_id stage_id is_completed
1 1 1 1
2 1 2 1
3 1 3 0
4 2 1 1
5 2 2 0
6 2 3 1
7 3 1 1
8 3 2 1
9 3 3 0
我怎樣才能得到所有task_ids其中stage_id = 1和is_completed = 1和stage_id = 2,is_completed = 0
我有如下表獲取與參考表不同的狀態相同主鍵列
id task_id stage_id is_completed
1 1 1 1
2 1 2 1
3 1 3 0
4 2 1 1
5 2 2 0
6 2 3 1
7 3 1 1
8 3 2 1
9 3 3 0
我怎樣才能得到所有task_ids其中stage_id = 1和is_completed = 1和stage_id = 2,is_completed = 0
SELECT *從mt_task_status 其中 TASK_ID在(SELECT TASK_ID FROM mt_task_status WHERE stage_id = '1' 和is_completed = '1') 和TASK_ID在(SELECT TASK_ID FROM mt_task_status WHERE stage_id = '2' 和is_completed ='0') and stage_id in(1,2) order by task_id
使用union
:
select task_id from table where stage_id = 1 and is_completed = 1
union
select task_id from table where stage_id = 2 and is_completed = 0
您可以使用AND
和OR
,例如組合:
SELECT task_id
FROM tasks
WHERE (stage_id = 1 AND is_completed = 1)
OR (stage_id = 2 AND is_completed = 2)
GROUP BY task_id;
感謝您的回覆,但我需要的是task_ids,其中stage_id = 1必須完成且stage_id = 2未完成。沒有一個 – Adalarasu
這個查詢將返回兩個,而不是其中任何一個。 –
是的,但我只需要那些相應的task_ids,其中兩個條件都滿足E.g.從我的桌子我應該只獲得task_id 2,其他人在兩個階段完成。只有task_id 2是(階段1完成,階段2未完成) – Adalarasu