我试图找出如何有两个“IN”语句。
虽然我不知道如何使用这两个嵌套的select语句,但我试图得到这样的东西。
$query_row=mysql_query(
"SELECT DISTINCT * FROM table_a WHERE field_1 IN
(SELECT field_1 FROM table_b WHERE field_2 = $field_2),
(SELECT field_3 FROM table_c WHERE field_4 = $field_4)
ORDER BY field_5 DESC
");
如果我删除其中一个(SELECT...
位,它可以正常工作,但尝试将两者都放在一起。
表a在表B和C中具有匹配值:分别为字段2和4。
如何让它发挥作用?
答案 0 :(得分:2)
取决于您是否要测试IN中的一个或两个:
WHERE field_1 IN (SELECT field_1 FROM table_b WHERE field_2 = $field_2) AND/OR field_1 IN (SELECT field_3 FROM table_c WHERE field_4 = $field_4) ...
答案 1 :(得分:2)
您可以尝试使用UNION:
SELECT DISTINCT *
FROM table_a
WHERE field_1 IN (SELECT field_1 FROM table_b WHERE field_2 = $field_2
UNION
SELECT field_3 FROM table_c WHERE field_4 = $field_4)
ORDER BY field_5 DESC