我有五张桌子:
型号: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/

10-11 02:44
查看更多