我有2个表格:videos和videos_lang。当我想获取有关所选语言的视频的信息时,我将这些表与LEFT JOIN一起使用。这就是问题所在:如果不存在所选语言的翻译,我想加入默认语言(始终存在)的翻译。我怎样才能做到这一点?
我使用该sql查询:

SELECT vl.\*, v.*
FROM videos v
LEFT JOIN videos_lang vl
ON vl.sig = 'de' AND v.idVideo = vl.idVideo


如何在vl.sig ='en'(en是默认语言)的情况下进行翻译?

最佳答案

试试这个查询-

SELECT
  IFNULL(vl.idVideo, vl_en.idVideo),
  v.*
FROM videos v
LEFT JOIN (SELECT * FROM videos_lang WHERE sig = 'de') vl
  ON v.idVideo = vl.idVideo
LEFT JOIN (SELECT * FROM videos_lang WHERE sig = 'en') vl_en
  ON v.idVideo = vl_en.idVideo

关于mysql - MySQL-使用条件执行JOIN,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16249402/

10-12 16:45