2017-09-05 51 views
1

我有两个表几乎相同的列 - 视频列表和画廊列表。然后,我想要将其加入到成员表中,以便从成员标识中获取成员名称。我最终得到的是按日期列排序的视频和画廊列表。我知道如何分开做,但不能把它合并起来。这里是单独的查询:来自两个表的MySQL与一个左连接

//Video Query 
SELECT videos.vid, videos.mid, videos.source, videos.category, videos.title, videos.description, videos.date_added, videos.status, members.name FROM videos LEFT JOIN members ON videos.mid=members.mid WHERE videos.status = 'published' ORDER BY date_added 

//Gallery Query  
SELECT galleries.vid, galleries.mid, galleries.directory, galleries.category, galleries.title, galleries.description, galleries.date_added, galleries.status, members.name FROM videos LEFT JOIN members ON videos.mid=members.mid WHERE galleries.status = 'published' ORDER BY date_added 

但我不能让它与两个表的左连接工作。这两个表使用相同的列进行左连接,同一列进行排序。我可以做一个查询吗?还是必须查询两者并进行某种合并?

最终的结果会是这样的:

- Video A by John 
- Gallery A by John 
- Video B by John 
- Video C by Mary 

谢谢!

回答

0

您可以结合双方的查询和喜欢写东西

SELECT 
    videos.vid, 
    videos.mid, 
    videos.source, 
    videos.category, 
    videos.title, 
    videos.description, 
    videos.date_added, 
    videos.status, 
    galleries.vid, 
    galleries.mid, 
    galleries.directory, 
    galleries.category, 
    galleries.title, 
    galleries.description, 
    galleries.date_added, 
    galleries.status, 
    members.name 
FROM 
    videos 
    LEFT JOIN members 
    ON videos.mid = members.mid members.name 
FROM 
    videos 
    LEFT JOIN members 
    ON videos.mid = members.mid 
    AND videos.status = 'published' 
    LEFT JOIN galleries 
    ON galleries.mid = members.mid 
AND galleries.status = 'published' 
ORDER BY galleries.date_added,videos.date_added 

我希望这有助于。

+0

对不起,没有工作。首先它返回了一个错误,所以首先从块中移除,然后它返回合并到视频行的画廊行,这不是我想要的。 – Kat