Eog*_*anM 9 sql join self-join
可能重复:
来自sql中的交叉连接的组合(不是排列)
我目前有一张包含以下记录的表格:
A1
A2
A3
B1
B2
C1
C2
Run Code Online (Sandbox Code Playgroud)
同一个字母表示一些共同的标准(例如,"字母"栏的共同值).我按照以下标准自行加入:
SELECT mytable.*, self.* FROM mytable INNER JOIN mytable AS self
ON (mytable.letter = self.letter and mytable.number != self.number);
Run Code Online (Sandbox Code Playgroud)
此连接提供如下内容:
A1 A2
A2 A1
A1 A3
A3 A1
A2 A3
A3 A2
B1 B2
B2 B1
C1 C2
C2 C1
Run Code Online (Sandbox Code Playgroud)
但是,我只想包括每一对(组合而不是排列).我如何得到以下内容:
A1 A2
A1 A3
A2 A3
B1 B2
C1 C2
Run Code Online (Sandbox Code Playgroud)
小智 18
稍微改变JOIN条件将达到你想要的效果.
代替:
ON (mytable.letter = self.letter and mytable.number != self.number)
Run Code Online (Sandbox Code Playgroud)
使用
ON (mytable.letter = self.letter and mytable.number > self.number)
Run Code Online (Sandbox Code Playgroud)
这将仅包括组合,其中self.number大于mytable.number实际上将结果限制为每个组合的一个有效排序...
| 归档时间: |
|
| 查看次数: |
8624 次 |
| 最近记录: |