[英]Howto Select rows that match the intersection of multiple rows in other tables in MYSQL?
似乎很復雜(可能是這樣)。 但是我無法想象如何解決這個問題。
有表:
公司介紹
id | 名稱
1 | 谷歌
2 | 三星
3 | 微軟
段落
id | 名稱
1 | 標頭
2 | 身體
3 | 頁腳
標簽
id | 標簽
1 | 互聯網
2 | 軟綿綿的
COMPANIES_VS_TAGS
id | company_id | tag_id
1 | 1 | 1個
2 | 2 | 2
3 | 3 | 1個
4 | 3 | 2
PARAGRAPHS_VS_TAGS
id | 段落編號| tag_id
1 | 2 | 1個
1 | 2 | 2
我需要通過邏輯AND選擇屬於屬於段落的標簽的[any_number]個公司。
因此,在上面的示例中,“正文”段應輸出唯一的公司“ Microsoft”。
添加:我只能使用WHERE和SubQueries :這是我必須使用的CMS的限制。
您只需要加入所有表:
SELECT companies.id,
companies.name
FROM companies,
tags,
companies_vs_tags,
paragraphs_vs_tags
WHERE companies.id = companies_vs_tags.company_id
AND tags.id = companies_vs_tags.tag_id
AND tags.id = paragraphs_vs_tags.tag_id
AND paragraphs.id = paragraphs_vs_tags.paragraph_id
AND paragraphs.name = "Microsoft";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.