【问题标题】:SQL Join Problem... what is it called?SQL 连接问题...它叫什么?
【发布时间】:2009-09-17 19:21:44
【问题描述】:

我有两个连接的表。我已经包含了连接表的“输出”。我想知道这个加入问题叫什么?有重复的行。

表 1         表 2
ID     名称    ID 名称
1     乔伊        4 玛丽
2     肖恩     5 泽维尔
3     马克        6 加里

连接输出为:

ID     名称    ID 名称
4     玛丽    1 乔伊
4     玛丽    2 肖恩
4     玛丽    3 马克
5     泽维尔  1 乔伊
5     泽维尔  2 肖恩
5     泽维尔   3 马克
6     加里    1 乔伊
6     加里    2 肖恩
6     加里    3 马克

【问题讨论】:

  • 哈哈,不,这不是家庭作业,我只是想向我的同事传达一个问题,我想具体说明问题是什么。谢谢!

标签: sql join


【解决方案1】:

如果没记错的话,这称为笛卡尔积。

【讨论】:

  • 也叫交叉连接。
  • 但“笛卡尔积”听起来不是更计算机化吗?
【解决方案2】:

我认为你的问题是你想使用UNION,而不是JOIN

例子:

SELECT * FROM Table1 UNION SELECT * FROM Table2;

应该给你:

ID  Name
1   Joey
2   Shawn
3   Mark
4   Mary
5   Xavier
6   Gary

这是你想要做的吗?

【讨论】:

    【解决方案3】:

    CROSS JOIN

    【讨论】:

      【解决方案4】:

      根据您的输出,您的查询类似于

      SELECT * FROM Table2, Table1
      

      这称为 CROSS JOIN,这是正常行为,对于 table2 中的每一行,都会附加 table1 中的值。

      你似乎想要的是一个 UNION

      SELECT * FROM Table1
      UNION
      SELECT * FROM Table2
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-01-28
        • 1970-01-01
        • 1970-01-01
        • 2020-07-02
        • 2012-02-07
        • 1970-01-01
        • 2010-12-11
        相关资源
        最近更新 更多