簡體   English   中英

SQL select 只有來自第二張表的一行 JOIN

[英]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_texttext之間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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM