繁体   English   中英

来自两个表的MySQL,其中一个左连接

[英]MySQL from two tables with one left join

我有两个表几乎具有相同的列-视频列表和画廊列表。 然后,我想将其加入成员表,以便可以从成员ID中获取成员名称。 我最后得到的是按日期列排序的视频和画廊列表。 我知道如何单独进行操作,但无法将其组合使用。 以下是单独的查询:

//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

等等

谢谢!

您可以结合查询并编写类似

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 

我希望这有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM