我将两个表连接在一起,我只想列出那些行,这些行的分组行计数与表a的pieces值不匹配。
table A
id name pieces
1 name_1 6
2 name_2 2
table B
a_id
1
1
2
2
所以我想要的是获取a.piece所在的所有a.name。
像这样:
SELECT a.name
FROM a
INNER JOIN b
ON a.id = b.a_id
WHERE a.pieces <> Count(*)
GROUP BY id
这将导致组函数的无效使用
我也试过这个:
SELECT a.name,
Count(*) AS count
FROM a
INNER JOIN b
ON a.id = b.a_id
WHERE a.pieces <> count
GROUP BY id
错误:未知列“count”
因此,在本例中,我只希望接收1行,如下所示:
name count
name_1 2
因为 name_1
中有2个分组行 table.b
而且不匹配 a.piece
是6。
2条答案
按热度按时间gupuwyp21#
你可以用
MAX()
在pieces
,因为它只是一个标量值,所以不会有什么区别。这也将使查询符合only_full_group_by
模式6kkfgxo02#
您可以聚合tableb中的数据并将其与tablea联接: