我需要一个 UNION
在两个查询中,每个查询都单独工作,但不能一起工作,我收到错误:重复的列名 zipcode_id
, 请帮忙。
(SELECT * FROM
( (SELECT * FROM jobs AS j LEFT JOIN zipcode AS z ON z.zipcode_id=j.zipcode_id WHERE 1 AND source='student'
ORDER BY postdate DESC LIMIT 20) ORDER BY search_order DESC )
s1)
UNION ALL
(SELECT * FROM
( (SELECT * FROM jobs AS j LEFT JOIN zipcode AS z ON z.zipcode_id=j.zipcode_id WHERE 1 AND source='manager'
ORDER BY postdate DESC LIMIT 30, 1000000) ORDER BY postdate DESC )
s2)
最佳答案
如果你真的在使用 SELECT *
然后是 zipcode_id
列在 Jobs
中表和Zipcode
table 。正如错误消息所说,您不能让两列使用与您拥有的名称相同的名称。因为您使用的是子查询,所以如果您引用重复的列名,SQL 引擎将无法理解您的意思。例如,下面的 SQL 应该返回什么?
SELECT num FROM (SELECT 1 AS num, 2 AS num) AS SQ
使用
SELECT *
在任何情况下都是一种非常糟糕的做法。
关于两个查询的SQL UNION,列名重复错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7664378/