如何解决如何从INNER JOIN
我正在使用SQL从表中提取数据,也正在使用INNER JOIN选择具有链接值/列的行,并将其附加到一个大行中。
下表:
| name | value | num |
| James | HEX124 | 1 |
| James | JEU836 | 4 |
我现在使用以下SQL将这两行合并为一行:
SELECT a.name,a.value,a.num,b.name,b.value,b.num
FROM MY_TABLE a
INNER JOIN MY_TABLE b ON a.name = b.name //Inner joining where the name is the same
WHERE a.value <> b.value // where the values are NO the same
结果:
| a.name | a.value | a.num | b.name | b.value | b.num |
| James | HEX124 | 1 | James | JEU836 | 4 |
| James | JEU836 | 4 | James | HEX124 | 1 |
正如您在结果中看到的那样,这是可行的,但是它正在返回所有可能的结果,我只想返回这些行之一,因为它几乎重复/反转了它们。
也许只返回第一行,其中a.name是重复的?
所需结果:
| a.name | a.value | a.num | b.name | b.value | b.num |
| James | HEX124 | 1 | James | JEU836 | 4 |
谢谢
解决方法
只需更改:
a.value <> b.value
收件人:
a.value < b.value
我将条件放在ON
子句中,如下所示:
SELECT a.name,a.value,a.num,b.name,b.value,b.num
FROM MY_TABLE a INNER JOIN
MY_TABLE b
ON a.name = b.name AND a.value < b.value;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。