2015-11-19 97 views
-3

我有以下查詢:MySQL查詢語法錯誤內加入

(
SELECT * FROM salon_promo tt 
    INNER JOIN 
    (SELECT salon_id, MAX(promo_id) AS MaxDateTime 
     FROM salon_promo 
     GROUP BY salon_id) 
    groupedtt ON tt.salon_id = groupedtt.salon_id 
     AND tt.promo_id = groupedtt.MaxDateTime) 
    INNER JOIN salons USING (salon_id) 

而且recive以下錯誤信息:

錯誤:你在你的SQL語法錯誤;檢查對應於您MariaDB的服務器版本使用附近的1號線

當我使用下面的查詢「INNER JOIN使用(salon_id)沙龍」正確的語法手冊:

SELECT * from salon_promo INNER JOIN salons USING (salon_id) 

一切工作正常。並從()查詢:

(
SELECT * FROM salon_promo tt 
    INNER JOIN 
    (SELECT salon_id, MAX(promo_id) AS MaxDateTime 
     FROM salon_promo 
     GROUP BY salon_id) 
    groupedtt ON tt.salon_id = groupedtt.salon_id 
     AND tt.promo_id = groupedtt.MaxDateTime 
) 

工作也很好。什麼會導致問題?

回答

2

您所查詢的是錯誤

groupedtt.MaxDateTime) 
        ^^)should remove 

應該

groupedtt.MaxDateTime 

所以最終的查詢是

SELECT * 
FROM salon_promo tt 
INNER JOIN (
    SELECT salon_id, MAX(promo_id) AS MaxDateTime 
    FROM salon_promo 
    GROUP BY salon_id) 
groupedtt ON tt.salon_id = groupedtt.salon_id 
AND tt.promo_id = groupedtt.MaxDateTime 
INNER JOIN salons USING (salon_id) 
+0

錯誤:列「salon_i d'in from子句不明確 –

+0

'MaxDateTime'是一個字段的名稱。 ('... MAX(promo_id)AS MaxDateTime ...') – JJJ

+0

@Juhana是對的MAX(日期時間)不正確 –