2013-04-26 2 views
1

Я пытаюсь присоединиться к двум различным запросам. Каждый запрос работает отдельно, но не работает при подключении.Проблема с MySQL Joint Query

SELECT * 
    FROM (


    SELECT i.id AS wid, i.start_time, i.end_time, i.drawing_time, i.result, SUM(t.amount) AS wpAmount, SUM(t.prize) , COUNT(t.id) AS cntWinTickets 
    FROM issues i 
    LEFT JOIN orders o ON o.issue_id = i.id 
    LEFT JOIN tickets t ON t.order_id = o.id 
    AND t.has_prize =1 
    GROUP BY i.id 
    ) AS A 
    JOIN 
    SELECT * 
    FROM (

SELECT i.id AS lid, SUM(t.amount) AS lpAmount, COUNT(t.id) AS cntLoosTickets 
FROM issues i 
LEFT JOIN orders o ON o.issue_id = i.id 
LEFT JOIN tickets t ON t.order_id = o.id 
AND t.has_prize !=1 
GROUP BY i.id 
) AS B ON A.wid = B.lid 

Внутренние запросы работают исправно, но при подключении они не работают.

Вот сообщение об ошибке:

MySQL сказал:

#1064 - 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 'SELECT * FROM (
SELECT i.id as lid, SUM(t.amount) AS lpAmount , COUNT(t.id)' at line 12 
+0

Не работает как? – sashkello

+1

Удалить второй SELECT * FROM, который после JOIN - вам не нужен ... – sashkello

+0

@sashkello: Проверьте обновленный вопрос plz. –

ответ

2

Попробуйте это (удалить ненужные SELECT после JOIN):

SELECT * 
    FROM 
    (
    SELECT i.id AS wid, i.start_time, i.end_time, i.drawing_time, i.result, SUM(t.amount) AS wpAmount, SUM(t.prize) , COUNT(t.id) AS cntWinTickets 
    FROM issues i 
    LEFT JOIN orders o ON o.issue_id = i.id 
    LEFT JOIN tickets t ON t.order_id = o.id 
    AND t.has_prize =1 
    GROUP BY i.id 
    ) AS A 
    JOIN 
    (
    SELECT i.id AS lid, SUM(t.amount) AS lpAmount, COUNT(t.id) AS cntLoosTickets 
    FROM issues i 
    LEFT JOIN orders o ON o.issue_id = i.id 
    LEFT JOIN tickets t ON t.order_id = o.id 
    AND t.has_prize !=1 
    GROUP BY i.id 
    ) AS B ON A.wid = B.lid 
+0

Почему downvote? Объясните. – sashkello

+1

+1, ваш ответ прав, вы не заслуживаете нисходящего. –

2

Попытка удалить вложенную SELECT *:

SELECT * 
FROM (SELECT i.id   AS wid, 
       i.start_time, 
       i.end_time, 
       i.drawing_time, 
       i.result, 
       Sum(t.amount) AS wpAmount, 
       Sum(t.prize), 
       Count(t.id) AS cntWinTickets 
     FROM issues i 
       LEFT JOIN orders o 
         ON o.issue_id = i.id 
       LEFT JOIN tickets t 
         ON t.order_id = o.id 
         AND t.has_prize = 1 
     GROUP BY i.id) AS A 
     JOIN (SELECT i.id   AS lid, 
        Sum(t.amount) AS lpAmount, 
        Count(t.id) AS cntLoosTickets 
      FROM issues i 
        LEFT JOIN orders o 
          ON o.issue_id = i.id 
        LEFT JOIN tickets t 
          ON t.order_id = o.id 
           AND t.has_prize != 1 
      GROUP BY i.id) AS B 
     ON A.wid = B.lid 
Смежные вопросы