我有两个表,table_a
和table_b
。table_a
具有以下架构:
CREATE TABLE table_a (
a_id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
a VARCHAR(255) NOT NULL UNIQUE,
b_id INT(11)
);
和table_b
:
CREATE TABLE table_b (
b_id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
b VARCHAR(255) NOT NULL UNIQUE
);
中的每个元素都table_a
指向中的table_a.b_id
一个元素table_b
。
我想要一个查询,该查询将输出table_b
其中有2个或更多元素对其进行引用的每个元素table_a
(对于每一行,我希望它显示所table_a
引用的元素个数)
谢谢
试试这个查询:
SELECT b.b_id, b.b, t.b_count
FROM table_b b INNER JOIN
(
SELECT a.b_id, COUNT(*) AS b_count
FROM table_a a
GROUP BY a.b_id
HAVING COUNT(*) > 1
) t
ON b.b_id = t.b_id
这避免了GROUP BY
包含歧义列的单个查询(因此将无法在SQL Server和某些其他版本上运行)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句