[英]SQL select only one row from second table JOIN
我有下表
渠道 | 編號 | 姓名 | 描述 |頻道用戶
| 頻道編號 | 用戶 ID |頻道文字
| 頻道編號 | 文本編號 |文本
| 編號 | 文字 | 時間我正在嘗試檢索用戶訂閱的所有頻道以及頻道最后一次收到文本(按用戶)。 例子: | 編號 | 姓名 | 描述 | 最后更新
到目前為止,我有以下內容
SELECT c.*,t.time as lastUpdate FROM chanel c INNER JOIN chanel_user cu ON c.id = cu.chanel_id INNER JOIN chanel_text ct ON cu.chanel_id=ct.chanel_id INNER JOIN text t ON t.id=ct.text_id JOIN ( SELECT id,MAX(time) maxtime FROM text GROUP BY id ) b ON t.time = b.maxtime JOIN users u ON cu.user_id=u.id WHERE u.id=2 ORDER BY c.id;
如果我理解正確,您需要在子查詢中的channel_text
和text
之間JOIN
。 您的查詢中也沒有u
表,但不需要:
SELECT c.*, t.time as lastUpdate
FROM chanel c INNER JOIN
chanel_user cu
ON t.id = ct.text_id JOIN
(SELECT ct.chanel_id, MAX(time) as maxtime
FROM chanel_text ct JOIN
text t
ON ct.text_id = t.id
GROUP BY ct.chanel_id
) ct
ON cu.chanel_id = ct.chanel_id
WHERE cu.id = 2
ORDER BY c.id;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.