1

次のように3つの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_to ='55'である msg_from ID とmsg_from = '55 ' であるmsg_to ID を取得し、これらを結合して個別の値を取得します。

例については、それが返されるはずです

54,45,16

これは可能ですか?または、これを達成するために他の規則に従う必要がありますか。ありがとう

4

2 に答える 2

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 フィドルのデモ

これにより、次のことが得られます。

| ID |
------
| 54 |
| 45 |
| 16 |
于 2013-03-23T07:01:07.200 に答える
1

UNIONunique のみを返すクエリの結果を組み合わせるために使用できます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 ║
╚═════════╝
于 2013-03-23T07:01:12.473 に答える