我正在尝试显示完整外连接表中的总行数。我有以下代码,但 mysql 说重复列有错误。 Actor 和导演这 2 个表具有相同的列,因为它们应该在各自的类别中提供相似的信息。
SELECT COUNT(*) FROM
(SELECT * FROM directors LEFT OUTER JOIN actors
ON directors.name = actors.name
UNION
SELECT * FROM directors RIGHT OUTER JOIN actors
ON directors.name = actors.name) AS table1;
如何修复代码以使其正常运行?仅供引用,括号内的代码运行良好。只有在我放入 SELECT COUNT(*) 子句后才会出现问题。
最佳答案
因为有两个 name
列,一个来自 directors
表,另一个来自 actors
表,您选择 *
这会让 DB 引擎混淆您想要获取的名称。
如果你只想计算
总数,你可以试试这个。
SELECT COUNT(*) FROM
(
SELECT directors.name FROM directors LEFT OUTER JOIN actors
ON directors.name = actors.name
UNION
SELECT directors.name FROM directors RIGHT OUTER JOIN actors
ON directors.name = actors.name
) table1;
注意
我建议使用 select
清除列并避免使用 select *
关于mysql - mySQL 中完全外连接的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52228191/