Mysql 选择两列宽度不同的其他列
快速示例Mysql 选择两列宽度不同的其他列,mysql,distinct,Mysql,Distinct,快速示例 sender_id || receiver_id 25 || 30 25 || 32 30 || 25 30 || 20 20 || 25 我想要这样的输出: sender_id || receiver_id 25 || 30 25 || 32 30 || 20 20
sender_id || receiver_id
25 || 30
25 || 32
30 || 25
30 || 20
20 || 25
我想要这样的输出:
sender_id || receiver_id
25 || 30
25 || 32
30 || 20
20 || 50
应该是什么查询任何人都可以帮助
注意:我想在选择中选择另一列,
不存在时:
select t.*
from tablename t
where t.sender_id < t.receiver_id
or not exists (
select 1 from tablename
where receiver_id = t.sender_id and sender_id = t.receiver_id
)
如果您只想比较发送方id和接收方id。。。。。。。我认为您必须使用这样的子查询进行连接
select * from TABLE t
JOIN (
SELECT DISTINCT sender_id, receiver_id FROM table_two
) subqquery ON subquery.key = t.key
我希望能帮助你试试看
此查询用于获取您的结果
select distinct a.sender_id,a.receiver_id
from sen_rev a
left join sen_rev b
on a.sender_id=b.receiver_id
where a.receiver_id<> b.sender_id
order by a.sender_id;
选择不同的a.sender\u id和a.receiver\u id
来自SENU rev a
左连接传感器rev b
在a.sender\u id=b.receiver\u id上
其中a.接收者\ id b.发送者\ id
按a.sender\u id订购;
如果要选择的其他列不同怎么办?将返回哪一行的列?其他列(数据、消息)注意,在输出中我没有选择(30 | | 25),因为我先拖了(25 | | 30),所以我没有选择第三行。是否有像id这样的主键列,或者一个datetime列,它可以用来检查第25、30和30、25行中哪一行是第一行?我想给你做屏幕截图请看这个屏幕截图聚焦在第一行,最后一行看前面的类似(这是)第一条记录(30 | | 25)和最后一条记录(25 | | 30)从您发布的图像中的样本数据来看,您的预期输出是什么?
select distinct a.sender_id,a.receiver_id
from sen_rev a
left join sen_rev b
on a.sender_id=b.receiver_id
where a.receiver_id<> b.sender_id
order by a.sender_id;