【问题标题】:Joining multiple different tables in MySQL在 MySQL 中连接多个不同的表
【发布时间】:2015-10-23 01:25:51
【问题描述】:

连接 4 个或更多表的示例

t1 - f1,f2,f3
t2 - f1,f4,f5
t3 - f4,f6,f7,f8
t4 - f8,f9

t1,t2,t3,t4 是 4 个表,f... 是对应的字段。请建议一个针对计算和内存进行优化的连接查询。例如;我想知道有多少 f2 X f4 X f7 X f8。

连接表的顺序和表的大小对sql语法有影响吗?

我搜索了多个论坛,发现某处使用了内部连接,并且使用了 UNION 和某处子查询。

请用 MySQL 的语法解释一下。

【问题讨论】:

标签: mysql sql database join aggregation


【解决方案1】:

只需一个接一个地编写所有连接。

SELECT COUNT(*)
FROM t1
JOIN t2 ON t1.f1 = t2.f1
JOIN t3 ON t2.f4 = t3.f4
JOIN t4 ON t3.f8 = t4.f8

连接的顺序无关紧要。确保在 ON 条件中使用的所有列都有索引。

【讨论】:

  • 只是添加到@Barmar 的答案,看看可用的连接选项的类型,以便您了解您可能想要使用的连接类型,它们有不同的行为取决于你在找什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-04
相关资源
最近更新 更多