我正在尝试从三个表中获取ID列表。
table_one
---------
| id | other_data |
table_two
---------
| this_id | user_id | time_qual |
table_three
---------
| this_id | second_qual |
我希望获得具有以下资格的table_one
id
列表:
id
的{{1}} table_three
this_id
中的second_qual
等于1 table_three
在this_id
等于table_two
的{{1}}并且在同一行中,table_one
的{{1}}等于php变量{该行中的{1}}和id
等于1.
table_two
,如果user_id
的{{1}}并且php变量$user_id
不是,则不包括#3在time_qual
这是我的尝试:
id
我猜测那里应该有一个table_one
而且id
会消除我想要的结果#4,但我不知道该怎么办。
提前致谢!
答案 0 :(得分:1)
尽我所能解析您的要求,我认为这就是答案。让我知道如果它错过了我可以修改:
SELECT t1.id
FROM table_three t3
RIGHT JOIN table_one t1
ON t1.id=t3.this_id
LEFT JOIN table_two t2
ON t1.id=t2.this_id
WHERE (t3.this_id IS NOT NULL AND t3.second_qual=1)
AND ((t2.this_id IS NOT NULL AND t2.user_id=1 AND t2.time_qual=1)
OR t2.this_id IS NULL);