MYSQL союз со многими JOIN - PullRequest
       35

MYSQL союз со многими JOIN

0 голосов
/ 24 октября 2011

Я пытаюсь написать запрос для извлечения списка из 2 (list1, list2) таблиц с одинаковыми столбцами.Есть ли другой способ переписать этот код?

(SELECT r.id as rid, s.title, u.username  
FROM list1 r 
JOIN drama s ON r.parent_id = s.id 
LEFT JOIN image i ON s.image_id = i.id 
LEFT JOIN user u ON r.user_id = u.user_id) 

UNION ALL 

(SELECT r.id as rid, s.title, u.username  
FROM list2 r 
JOIN movie s ON r.parent_id = s.id 
LEFT JOIN image i ON s.image_id = i.id 
LEFT JOIN user u ON r.user_id = u.user_id) 
ORDER BY rid LIMIT 10

Ответы [ 2 ]

0 голосов
/ 24 октября 2011
SELECT r.id as rid, s.title, u.username  
FROM (SELECT l1.id, l1.user_id, l1.parent_id FROM list1 l1 
      UNION ALL 
      SELECT l2.id, l2.user_id, l2.parent_id FROM list2 l2) r
INNER JOIN drama s ON r.parent_id = s.id 
LEFT JOIN image i ON s.image_id = i.id 
LEFT JOIN user u ON r.user_id = u.user_id 
ORDER BY rid 
LIMIT 10
0 голосов
/ 24 октября 2011

что не так, если вы сделаете это

SELECT r.id as rid, m.title AS movie Title, 
       d.title as DramaTitle, u.username  
FROM list1 r 
INNER JOIN movie m ON r.parent_id = m.id 
INNER JOIN drama d ON r.parent_id = d.id 
LEFT JOIN image i ON s.image_id = i.id 
LEFT JOIN user u ON r.user_id = u.user_id
ORDER BY r.id LIMIT 10 
...