【发布时间】:2013-02-26 14:23:31
【问题描述】:
我有两个具有一对多关系的表。我通过 id 列加入表格。我的问题是我需要计算第二个(tablekey_id)表中所有匹配条目的数量,但我需要标有布尔值is_basedomain 的行中的信息。请注意,每组具有相同 tablekey_id 的行只有一行 is_basedomain = 1。
表格:tablekey
id linkdata_id timestamp
22 9495028175 2013-03-10 01:13:46
23 8392740179 2013-03-10 21:23:25
表:searched_domains。
注意:tablekey_id 是 tablekey 表中 id 的外键。
id tablekey_id domain is_basedomain
1 22 somesite.com 1
2 22 yahoo.com 0
3 23 red.com 1
4 23 blue.com 0
5 23 green.com 0
这是我正在使用的查询。我试图使用子查询,但我似乎无法只选择当前 tablekey_id 的计数,所以这不起作用。
SELECT `tablekey_id`, `linkdata_id`, `timestamp`, `domain`, `is_basedomain`,
(SELECT COUNT(1) AS other FROM `searched_domains` AS dd
ON dd.tablekey_id = d.tablekey_id GROUP BY `tablekey_id`) AS count
FROM `tablekey` AS k
JOIN `searched_domains` AS d
ON k.id = d.tablekey_id
WHERE `is_basedomain` = 1 GROUP BY `tablekey_id`
我想得到的结果是:
tablekey_id linkdata_id timestamp domain is_basedomain count
22 9495028175 2013-03-10 01:13:46 somesite.com 1 2
23 8392740179 2013-03-10 21:23:25 red.com 1 3
谁能帮我在一个查询中解决这个问题?
【问题讨论】: