【发布时间】:2011-07-05 12:02:31
【问题描述】:
我有一个语句,根据链接表的共享标签和扬声器的数量对项目进行排名,但我希望它也能够从主 tbl_talks 中提取 talk_title 和 talk_brief 信息,这实际上不在查询中现在(仅使用链接表)。 基本上链接表有talk_id和tag_id或talk_id和speaker_id。
我尝试了几种尝试 LEFT JOIN 的方法,或者在应用联合但没有运气的成对 SELECT 中添加 tbl_talks。我需要将 tbl_linking_talk_tag.talk_id 和 tbl_linking_speakers_talk 与 tbl_talks.talk_id 相关联,然后从 tbl_talks 中获取talk_title 和talk_brief
SELECT talk_id, count(*) AS common_term_count FROM
(
SELECT talk_id FROM tbl_linking_talk_tag WHERE tag_id IN
(SELECT tag_id FROM tbl_linking_talk_tag WHERE talk_id = 1)
UNION ALL
SELECT talk_id FROM tbl_linking_speakers_talk WHERE speaker_id IN
(SELECT speaker_id FROM tbl_linking_speakers_talk WHERE talk_id = 1)
) AS accumulator_table
WHERE talk_id != 1
GROUP BY talk_id
ORDER BY common_term_count DESC
【问题讨论】:
标签: mysql join union relational-database inner-join