【问题标题】:how to get the uncommon data in two queries in for the same table in mysql?如何在mysql中的同一张表的两个查询中获取不常见的数据?
【发布时间】:2013-03-23 15:01:12
【问题描述】:

我有如下三个mysql表

msg_table

msg_id  | msg_to | msg_from |msg

1 | 55 | 54 | hello

2 |55 |45 |Nice

3 |16 |55 |world

4 |54 |55 |Nice job

我需要得到的是

获取 msg_from id,即 msg_to='55'msg_to id,即 msg_from='55' 将它们结合在一起,从中获得不同的价值。

所以对于应该返回的例子

54,45,16

这可能吗?还是我必须遵循任何其他规则才能做到这一点。谢谢

【问题讨论】:

    标签: mysql


    【解决方案1】:

    使用UNION(隐式不同):

    SELECT msg_from AS id FROM msg_table WHERE msg_to   = 55
    UNION 
    SELECT msg_to         FROM msg_table WHERE msg_from = 55;
    

    SQL Fiddle Demo

    这会给你:

    | ID |
    ------
    | 54 |
    | 45 |
    | 16 |
    

    【讨论】:

    • 天哪,它有效...我在 UNION 上尝试了很多时间。但没有运气。非常感谢
    【解决方案2】:

    您可以简单地使用UNION 来组合查询的结果,只给出唯一的ID

    SELECT  msg_to to_from FROM msg_Table WHERE msg_from = 55
    UNION
    SELECT  msg_from to_from FROM msg_Table WHERE msg_to = 55
    

    输出

    ╔═════════╗
    ║ TO_FROM ║
    ╠═════════╣
    ║      16 ║
    ║      54 ║
    ║      45 ║
    ╚═════════╝
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-10
      • 2014-01-18
      • 1970-01-01
      • 1970-01-01
      • 2019-05-27
      • 2016-01-07
      • 2015-08-08
      相关资源
      最近更新 更多