我有3张桌子:
Message_group
---------------------------------------
message_group_id | profile_id | group_id
----------------------------------------
1 sN07X2 4934Me
2 abcde2 4934Me
3 Red3zw 3492Ga
4 Hgr43s 3492Eh
----------------------------------------
Private_Message
----------------------------------------
msg_id | msg_txt | profile_id | occured_at
-----------------------------------------
1 Hello abcde2 2013-06-26
2 Bye Bye abcde2 2013-06-26
3 Ciao Red3zw 2012-06-26|
-----------------------------------------
Users
-------------------------------------------
profile_id | name | sirname |
sN07X2 Jin OO
abcde2 Gerry UU
Red3zw Lola YY
Hgr43s Scot EE
我希望得到像那样的结果
profile_id | profile_id2 | group_id | msg_text
abcde2 sN07X2 4934Me abcde2
我想要这个结果但是像msg_text只是最后一个消息。 我写的这个查询给了我这个结果,我不知道如何添加带有限制1的字段msg:
profile_id | profile_id2 | group_id |
abcde2 sN07X2 4934Me
QUERY:
SELECT * FROM message_group a
JOIN message_group b ON a.group_id=b.group_id
INNER JOIN users ON users.profile_id = b.profile_id
WHERE a.profile_id = 'sN07X2'
AND b.profile_id != a.profile_id
答案 0 :(得分:1)
未经测试,但可能
SELECT a.*,b.*,(SELECT msg_txt FROM Private_Message p WHERE p.profile_id=a.profile_id ORDER BY occured_at DESC LIMIT 1)
FROM message_group a
JOIN message_group b ON a.group_id=b.group_id
INNER JOIN users ON users.profile_id = b.profile_id
WHERE a.profile_id = 'sN07X2'
AND b.profile_id != a.profile_id
但是,我真的不明白你的情况:AND b.profile_id != a.profile_id
?? !!