作為一個 SQL 新手,我仍然無法弄清楚下面的語法有什么問題:
SELECT wd.id, wdp.age, wd.coins_needed, wd.power
FROM Wands AS wd
INNER JOIN Wands_Property AS wdp ON wd.code = wdp.code WHERE wdp.is_evil = 0
INNER JOIN (SELECT w.id, wp.age, MIN(w.coins_needed), w.power
FROM Wands as w
JOIN Wands_Property as wp
ON w.code = wp.code
GROUP BY wp.age, w.power) AS min_wd ON min_wd.id = wd.id
ORDER BY wd.power DESC, wdp.age DESC
表:
魔杖:id(整數),code(整數),coins_needed(整數),power(整數)
Wands_Property:代碼(整數)、年齡(整數)、is_evil(整數)
我收到以下錯誤:
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INNER JOIN (SELECT w.id, wp.age, MIN(w.coins_needed), w.power F' at line 4
我想,語法有問題,但 MySql 編譯器并沒有真正的幫助:)
uj5u.com熱心網友回復:
只是一些小的語法問題:
- WHERE 子句放錯了位置。它需要遵循所有連接。
- 該欄位
w.id在子選擇的 GROUP BY 子句中提到,但不在子查詢選擇的欄位中。
更新后的陳述句變為:
SELECT wd.id, wdp.age, wd.coins_needed, wd.power
FROM Wands AS wd
INNER JOIN Wands_Property AS wdp
ON wd.code = wdp.code
INNER JOIN (SELECT w.id, wp.age, MIN(w.coins_needed), w.power
FROM Wands as w
JOIN Wands_Property as wp
ON w.code = wp.code
GROUP BY w.id, wp.age, w.power) AS min_wd
ON min_wd.id = wd.id
WHERE wdp.is_evil = 0
ORDER BY wd.power DESC, wdp.age DESC
db<>在這里擺弄
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/497260.html
