加入已知ID的多个表

时间:2011-08-31 04:10:36

标签: mysql join

我有多个(数量为13个)表,它们有一个共同点:它们的ID。

重点是我需要查询单个ID的结果(每个表可以从none到多个不同)并返回具有该ID的所有结果 - 它不是UID。

我有一个表应该/可能是其他表连接的“起始”点以及每种情况下出现疑问ID的位置。

不想发布到目前为止我尝试过的内容 - 我想避开这些笑话。阅读我在Mysql中写的内容很接近看到一个孩子走它的第一步。可爱又搞笑。

感谢任何提示,建议和好评!

1 个答案:

答案 0 :(得分:3)

据我所知,你有一个具有ID值的父表和许多应该连接到父表的类似子表。检查此查询。这是你想要的吗?

SELECT * FROM parent_table t
LEFT JOIN child_table1 t1
  ON t.id = t1.id
LEFT JOIN child_table2 t2
  ON t.id = t2.id
...
LEFT JOIN child_table<n> t<n>
  ON t.id = t<n>.id

或者这个变种;在这种情况下,所有子表都将按行返回 -

SELECT * FROM parent_table t
LEFT JOIN (
  SELECT * FROM child_table1
  UNION ALL 
  SELECT * FROM child_table2
  UNION ALL 
  ...
  SELECT * FROM child_table<n>
  UNION ALL
) t1
ON t.id = t1.id