【发布时间】:2013-11-26 03:01:17
【问题描述】:
我有三个表,它们都共享一个公共字段 (our_id)。
our_id 是 Table1 中的主键。
our_id 在 Table2 和 Table3 中也存在零次或多次。
我想选择our_id在Table1和Table2中都存在的记录,但我还需要计算our_id在Table3中出现的次数(或者甚至只是our_id在Table3中是否存在)。
我想出了这个:
SELECT Table1.*, Table2.*, COUNT(Table3.*) AS table3_count
FROM Table1, Table2, Table3
WHERE Table1.our_id = Table2.our_id
AND Table1.our_id = Table3.our_id;
...但它只返回表 3 中存在 our_id 的结果,它可能不会这样做。
所以我尝试了:
SELECT Table1.*, Table2.*, COUNT(Table3.*) AS table3_count
FROM Table1, Table2, Table3
WHERE Table1.our_id = Table2.our_id
AND (Table1.our_id = Table3.our_id
OR NOT EXISTS (SELECT * FROM Table3
WHERE Table1.our_id=Table3.our_id));
但那只是跑了又跑……
我需要它仍然返回在 Table1 和 Table2 中都存在 our_id 的结果,并告诉我它在 Table3 中存在多少次(或是否存在)。
提前谢谢你!
【问题讨论】:
标签: mysql