2016-08-15 47 views
0

如何創建一個查詢分組誰已經從用戶1GROUP_CONCAT進行分組多行的用戶

SQL發送或接收郵件的用戶: http://sqlfiddle.com/#!9/7d6a9爲usr_msg
http://sqlfiddle.com/#!9/3ac0f爲token_msg。

我有2個表:token_msgsuser_msgs

Image of my tables:

我想告訴用戶ID列表(非repeting,喜歡的用戶2,3和4應該是可見的只有一次,但在DESC命令)誰發送/接收到來自user1的消息[from_id = 1或to_id = 1]。我無法創建GROUP_CONCAT的邏輯,也不確定是否真的需要加入這兩個表。

enter image description here

謝謝。

+0

什麼是您預期的輸出?一個列表?一組行?這不清楚。請編輯提供此信息的問題。我不認爲你需要'GROUP_CONCAT'。 –

+0

@KamilG。添加圖像來說明我的預期輸出。 – Somename

回答

0

假設你有一個用戶列表,你可以使用INEXISTS

select u.* 
from users u 
where u.id in (select from_id from user_msgs where to_id = 1) or 
     u.id in (select to_id from user_msgs where from_id = 1) or 
     u.id in (select from_id from token_msgs where to_id = 1) or 
     u.id in (select to_id from token_msgs where from_id = 1); 
+0

但是,這是返回所有的值..我怎麼能限制一次1對話? – Somename