0
我覺得我在服用瘋狂的藥丸。返回表格中包含兩個值的行
我有一個表problems
。它看起來像:
id | pid | problem_list_id
-----------------------------------
1 | 159 | 16
2 | 159 | 4
3 | 10 | 16
4 | 565 | 90
5 | 565 | 4
6 | 122 | 12
我想查詢pid
有和兩個16 PROBLEM_ID 4.
SELECT
YEAR(pbd.date_created),
COUNT(*)
FROM
patient_booking_data pbd inner join problems p on pbd.pid = p.pid
WHERE p.problem_list_id in (16,4)
GROUP BY YEAR(pbd.date_created)
ORDER BY YEAR(pbd.date_created)
這顯然會打16或4。我需要的PID與同時16和4.
當我嘗試使用:
WHERE (p.problem_list_id = 16 AND p.problem_list_id = 4)
這不會產生任何結果。
我可以使用類似:
SELECT
YEAR(pbd.date_created),
COUNT(*)
FROM
patient_booking_data pbd inner join problems p on pbd.pid = p.pid
WHERE p.problem_list_id = 16
AND pbd.pid in (SELECT pid FROM problems where problem_list_id = 4)
GROUP BY YEAR(pbd.date_created)
ORDER BY YEAR(pbd.date_created)
但使用嵌套select
似乎有點小題大做。
我錯過了一些明顯的東西嗎?