我有五张桌子:
型号:id、名称、规格
模型网络:id,模型id,网络id
网络:id、名称、描述
国家/地区网络:id、国家/地区id、网络id
国家:身份证、国名等models
表通过具有多对多关系的networks
连接到models_networks
表。networks
表通过具有多对多关系的countries
连接到countries_networks
表
我需要做以下查询,但我被卡住了:
选择将在特定国家工作的所有型号。
比如说法国有两个网络。PigNetwork和CowNetwork。我想得到所有在PigNetwork或CowNetwork上工作的模型,基本上任何在那个国家工作的模型。
如果我已经说清楚了,有人能帮我处理连接查询吗?我以前只上过两张桌子。谢谢。
最佳答案
SELECT
m.name AS model_name,
c.countryName,
COUNT(*) AS network_count
FROM
models AS m
INNER JOIN models_networks AS mn ON mn.model_id = m.id
INNER JOIN networks AS n ON n.id = mn.network_id
INNER JOIN countries_networks AS cn ON cn.network_id = n.id
INNER JOIN countries AS c ON c.id = cn.country_id
WHERE
c.countryName = 'France'
GROUP BY
m.name,
c.countryName
关于sql - SQL连接五个表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1070032/