0
我试图从三个表中获取ID的列表。获取多列限定符,INNER JOIN和UNION以一起工作
table_one
---------
| id | other_data |
table_two
---------
| this_id | user_id | time_qual |
table_three
---------
| this_id | second_qual |
我想有以下资格得到一个列表的table_one
id
S:
- 的
id
也在table_three
的this_id
second_qual
发现table_three
等于1this_id
intable_two
等于table_one
的id
和在同一行中,table_two
的user_id
等于PHP变量$user_id
ANDtime_qual
该行中等于1- 而且包括
id
s表示符合#1和#2,和不#3如果table_one
的id
和PHP变量$user_id
未在同一行发现的table_two
这是我的尝试:
SELECT tb1.id FROM table_one tb1
INNER JOIN table_two tb2
INNER JOIN table_three tb3
WHERE tb2.this_id = tb1.id
AND tb3.this_id = tb1.id
AND tb3.second_qual = 1
AND ((tb2.user_id = $user_id AND tb2.time_qual = 1)
OR ($user_id NOT IN (SELECT user_id FROM table_two)))
GROUP BY tb1.id
我猜这里面应该有一个UNION
,而tb2.this_id = tb1.id
消除了我想从#4中得到的结果,但我不知道该怎么做。
在此先感谢!
谢谢你的所有帮助。这个概念很难解析。我不得不添加第二个'OR'('OR($ user_id NOT IN(SELECT user_id FROM t2.user_id)))''再一次,谢谢! – Kyle