[英]mysql query help?
(
SELECT u.username, u.picture, m.id, m.user_note, m.reply_id, m.reply_name, m.dt
FROM relationships r
JOIN notes m ON m.user_id = r.leader
JOIN user u ON r.leader = u.user_id
WHERE r.listener ='2'
)
UNION ALL
(
SELECT u.username, u.picture, m.id, m.user_note, m.reply_id, m.reply_name, m.dt
FROM notes m
JOIN user u ON m.user_id = u.user_id
WHERE u.user_id ='2'
)
WHERE dt > '2010-09-20_131830'
ORDER BY dt DESC
這是什么,它詢問用戶(登錄),他們關注的人,並檢索他們的消息。 表格如下所示!
我想要添加到此查詢,也是用戶(登錄)更新以及。 但顯然用戶deosnt跟隨自己。 什么是最好的方式我可以做到這一點!
user_id | username
-------------------
1 | solomon
2 | muna
id user_id| message
---------------------------------------
1 1 | this is my first message
2 1 | this is my second message
3 2 | this is muna message
leader | follower
------------------
1 | 2
最明顯的解決方案是UNION ALL
您的查詢,使用另一個類似的查詢來檢索登錄用戶的消息。 像這樣的東西:
(
SELECT u.username, u.picture, m.id, m.user_note, m.reply_id, m.reply_name, m.dt
FROM relationships r
JOIN notes m ON m.user_id = r.leader
JOIN user u ON r.leader = u.user_id
WHERE r.listener ='".$_SESSION['user_id']."'
)
UNION ALL
(
SELECT u.username, u.picture, m.id, m.user_note, m.reply_id, m.reply_name, m.dt
FROM notes m
JOIN user u ON m.user_id = u.user_id
WHERE u.user_id ='".$_SESSION['user_id']."'
);
更新:
在更新的查詢之后,您不能擁有WHERE
子句。 您應該為每個查詢都有一個單獨的WHERE
,否則使用這樣的派生表:
SELECT *
FROM
((
SELECT u.username, u.picture, m.id, m.user_note, m.reply_id, m.reply_name, m.dt
FROM relationships r
JOIN notes m ON m.user_id = r.leader
JOIN user u ON r.leader = u.user_id
WHERE r.listener ='".$_SESSION['user_id']."'
)
UNION ALL
(
SELECT u.username, u.picture, m.id, m.user_note, m.reply_id, m.reply_name, m.dt
FROM notes m
JOIN user u ON m.user_id = u.user_id
WHERE u.user_id ='".$_SESSION['user_id']."'
)) d
WHERE d.dt > '2010-09-20_131830'
ORDER BY d.dt DESC;
這個怎么樣:
SELECT u.username, u.picture, m.id, m.user_note, m.reply_id, m.reply_name, m.dt
FROM notes m
INNER JOIN user u
ON m.user_id = u.user_id
WHERE (m.user_id = '".$_SESSION['user_id']."'
OR m.userID IN (
SELECT r.leader
FROM relationships r
WHERE r.listener ='".$_SESSION['user_id']."'))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.