我如何计算出现在第1列而不是第2列的值。它们来自同一个表,不使用子查询或任何花哨的东西。它们可能会或可能不会共享其他常见列值(例如col 3 = col 4)但这并不重要。
我几乎使用子查询,但无法知道如何在没有子查询的情况下执行此操作。唯一的问题(我认为)如果主键(由col1,col3,col4组成)不同但col1相同,它会计算两次。
SELECT DISTINCT COUNT(*)
FROM mytable t1
WHERE NOT EXISTS (
SELECT DISTINCT *
FROM mytable
WHERE t1.column1 = mytable.column2
);
但就像我说的那样,我试图在没有子查询的情况下计算这个
答案 0 :(得分:0)
请看这个:
SELECT
SUM(IF(column1 = column2, 0, 1)) as c
FROM
mytable
答案 1 :(得分:0)
怎么样:
SELECT COUNT(*)
FROM mytable mt1
LEFT JOIN mytable mt2 ON mt1.column1 = mt2.column2
WHERE mt2.column IS NULL