在没有公共或链接列的MySQL中加入3个不同的表
我在Mysql中有三个不同的表格,它们没有共同的列,我想从每个表格访问一列,并将其中的所有表格合并在一起。
表详细信息
每个表中有更多的列,但我已经提到了我想访问的内容。我已经尝试了下面的代码,但是这只返回列名作为输出并且没有列数据在输出中接收。我是数据库中的初学者,所以请帮助我与此。
SELECT * FROM screen
JOIN movie ON movie.M_Code = screen.S_Id
JOIN showdetails ON showdetails.Show_Id = screen.S_Id;
您可以创建3个单独的选择语句并将它们链接到硬编码的人工键上
select a, b, c, d, e, f from (
(select a, b, c, 1 as key from atable) aa
inner join
(select d, e, f, 1 as key from btabke) bb
on aa.key = bb.key
沿着这些线路
从本质上讲,每个select语句都会成为它自己的表,只选择那些你想链接到其他select基表的表。 人造钥匙是将它们连接在一起的一种简单方法,因为您没有其他方法可以这样做
我不完全确定我明白你想达到什么。 这些桌子是否彼此相关,例如,每部电影都有一个显示屏幕? 如果是这样,你必须像这样加入:
SELECT * FROM screen JOIN movie ON movie.S_Id = screen.S_Id
想象你的桌子如下所示:
屏幕
S_Id| name ----------- 1 | Main Screen 2 | Screen 2 3 | Little Screen
表
M_Code| Name ------------- 1 | Find Nemo 2 | Odyssey in Space 3 | Lord of the Rings
您的加入声明会将ID保持原样,在这种情况下,请在主屏幕中查找尼莫,在屏幕2中查找空间中的奥德赛,并在小屏幕中查找LOTR。 这可能不是你想要实现的,所以你必须使用或添加一个将这些数据行相互链接的列。
如果你想要得到所有可能的组合,你可以使用康斯坦丁答案,但我认为如果你有很多数据集,这可能会变得非常缓慢。 相反,您可以检索每个表的所有数据集,并仅合并程序中有意义的那些数据集。
链接地址: http://www.djcxy.com/p/72721.html上一篇: Join 3 Distinct Tables in MySQL with no Common or Linked Column
下一篇: How can I SELECT rows with MAX(Column value), DISTINCT by another column in SQL?