我有两张桌子:
Table1:
ID | Column 1 | Column 2
1 | Value 1 | Value 2
Table 2:
ID | Column 3 | Column 4
1 | Value 4 | Value 5
1 | Value 6 | Value 7
目前我的查询是:
SELECT * FROM Table1 INNER JOIN Table2 ON Table1.id = Table2.id ;
返回:
id | Column 1 | Column 2 | id | Column 3 | Column 4
1 | Row 1 | Row 1 | 1 | Row 1 | Row 1
1 | Row 1 | Row 1 | 1 | Row 2 | Row 2
1 | Row 1 | Row 1 | 1 | Row 3 | Row 3
我想使用SQL内连接或任何其他连接来返回Table1中的单行,以及来自Table2的所有其他相关行
id | Column 1 | Column 2 | id | Column 3 | Column 4
1 | Row 1 | Row 1 | 1 | Row 1 | Row 1
1 | Row 2 | Row 2
1 | Row 3 | Row 3
这可能吗?
答案 0 :(得分:1)
评论太长了。
您可以在SQL中执行您想要的操作,但我不鼓励您尝试它。首先,它在MySQL中比在其他方言中更麻烦(因为缺少窗口函数)。
更重要的是,它违反了关系数据库中的一个关键思想:表和结果集代表无序集。行的顺序无关紧要。在结果集中,第一行和其余行之间存在很大差异。许多行的含义取决于它之前的内容。并且,在无序集合中没有“之前”。
虽然在SQL中获得这些结果是一个很好的挑战,但最好在应用程序层中进行这种类型的格式化。应用程序编程环境更适合调整演示结果。