我试图显示完整外部联接表中的行总数。我有以下代码,但mysql说有一个重复列的错误。这两个表actors和directors具有相同的列,它们应该在各自的类别中提供类似的信息。
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
列,一个是fromdirectors
表,另一个是fromactors
表,而您select *
会让DB engine混淆您想要得到的名称。
如果你只想count
总数,你可以试试这个。
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/