MySQL 加入查询结果

标签 mysql sql

如果第一个查询中不存在第二个查询,我将尝试查找行。但是我收到“您的 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/

相关文章:

php - 如何在codeigniter中使用连接表获取数据NO ID?

mysql - SQL查询一个单元格中的多个值

sql - 未终止美元报价

sql - PostgreSQL 间隔总和

mysql - MySQL表中累计到差分数据

php - Solr 与 MySQL 没有返回结果

mysql - 如何在现有表字段中设置新的自动增量值?

mysql - SQL 仅选择重新访问列上具有最大值的行

php - 复杂的 MySQL 数据库

SQL : can't get IDENTITY value in Trigger