0
我使用的MySQL數據庫版本5.6.17
,我有以下各表
SELECT語句JOIN語句在MySQL
- 用戶
- ID
- 用戶名
- 系列
- imdbID
- 插曲
- imdbID
- 賽季
- 插曲
- imdbVotes
- seriesID
- 型
- marktype
- ID
- 類型
- 測試又名(serieswatchlist)
- ID
- 的userid
- EPID
- markid
請注意:不是我刪除了大部分的列的每個表中減少的問題長度
我設法提取如下數據(所有用戶數據,所有插曲的數據,全系列數據)使用下面的SQL代碼
SELECT e.*, u.username, s.*
FROM test w
INNER JOIN users u
ON u.ID = w.userid
INNER JOIN episode e
ON w.epid = e.imdbID
INNER JOIN series s
ON e.seriesID = s.imdbID
WHERE e.seriesID IN (SELECT (imdbID) FROM series)
AND w.userid = 1
,但我想要做的
我想每個系列來獲取SQL語句的結果另一個操作是最大的季節號和貝羅最大集數以及使用SQL語句的該系列的該季節。
到目前爲止,每次我嘗試在前面的代碼之前編寫任何代碼時,它總是會給我一個錯誤,除語法錯誤外沒有任何解釋。
更新1: 嘗試GROUP BY圍繞我的代碼,但它導致錯誤
「每個派生的表必須有它自己的別名」
這裏是修改後的代碼
SELECT MAX(e.season) FROM
(SELECT e.seriesID, u.username, e.imdbID AS "episodeID"
FROM test w
INNER JOIN users u
ON u.ID = w.userid
INNER JOIN episode e
ON w.epid = e.imdbID
INNER JOIN series s
ON e.seriesID = s.imdbID
WHERE e.seriesID IN (SELECT (imdbID) FROM series)
AND w.userid = 1)
GROUP BY seriesID
更新2: 改變了代碼以修復錯誤以下
SELECT MAX(x.season), max(x.episode) FROM
(SELECT e.seriesID, u.username, e.imdbID AS "episodeID", e.season, e.episode
FROM test w
INNER JOIN users u
ON u.ID = w.userid
INNER JOIN episode e
ON w.epid = e.imdbID
INNER JOIN series s
ON e.seriesID = s.imdbID
WHERE e.seriesID IN (SELECT (imdbID) FROM series)
AND w.userid = 1) as x
GROUP BY x.seriesID
它的工作沒有任何問題
參與者?什麼?這是如何運作的? – Strawberry
最小化問題。例如,有許多不重要的列可以從問題中刪除。 – jarlh
@Strawberry仍然在研究那個功能,但它的價值是文本例如(john doe,my x,miss y) – hamada147