mysql - 在子查询上使用别名,然后在 ON 子句中使用它进行 LEFT JOIN

标签 mysql sql left-join

此 MySQL SQL 语句传达了我正在尝试执行的操作,但无效:

SELECT * FROM 
  (SELECT DISTINCT Thing FROM BigList) AS SomeThing
  LEFT JOIN thingDetail ON SomeThing = thingDetail.Thing
  -- other left joins follow

问题是在 ON 子句中,不允许使用别名。并且,从子查询中删除别名会产生错误,提示别名是必需的。非常第二十二条军规。

我在网上找到了很多示例,其中 JOIN 部分是一个子查询,并且别名确实在那里起作用。但我还没有找到可以实现上述功能的东西。

如果它在关于子查询的 MySQL 手册中,我就找不到它了。我应该使用什么语法来执行此操作?

最佳答案

SELECT * FROM 
(SELECT DISTINCT Thing FROM BigList) AS SomeThing
LEFT JOIN thingDetail ON SomeThing.Thing = thingDetail.Thing
-- other left joins follow

您指的是 table 别名而不是表中的 column

关于mysql - 在子查询上使用别名,然后在 ON 子句中使用它进行 LEFT JOIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32617025/

相关文章:

c# - 我的 Webforms 数据存储在哪里?

mysql - 有没有其他方法可以选择此 case 语句中的值而不是子查询

sql - 选择按频率排序的最重要的不同结果

sql - 在 Oracle PL/SQL 中创建后执行 SELECT

sql - sql组合

php - MySQL、PHP;在比较之前编辑列值

java - 按主键查找与按唯一列查找有区别吗?

mysql - 2 在带有 LEFT JOIN 的 SELECT 中进行 COUNT

python - pandas 在一个键和另一列内的一列值上进行左连接

MySQL 外部连接给出最大连接大小错误