如果第一个查询中不存在第二个查询,我将尝试查找行。但是我收到“您的 SQL 语法在右连接附近有错误”错误。
(SELECT t1.id AS id, t2.id, t3.id
FROM table1 t1
INNER JOIN table2 t2 ON t2.id = t1.id
INNER JOIN table3 t3 ON t3.id = t2.id
) a
RIGHT JOIN
(SELECT id
FROM table4
WHERE col1 IS NOT NULL AND col2 IN (1, 2)) b
ON a.id = b.id
我在这个查询中做错了什么?谢谢。
最佳答案
在连接查询中,您必须将所有列放在第一个选择语句中。您查询中的第二个选择语句无效。
SELECT
t1.id as id, t2.id, t3.id, b.id
FROM
(table1 t1
inner join table2 t2 on t2.id=t1.id
inner join table3 t3 on t3.id=t2.id)
right join table4 b on t1.id = b.id
WHERE b.col1 IS NOT NULL AND b.col2 IN (1, 2))
关于MySQL 加入查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17095763/