0

我有 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 是默认语言)处获得翻译?

4

2 回答 2

1

试试这个查询 -

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
于 2013-04-27T07:29:49.183 回答
0

您可以尝试在连接查询中使用 OR 条件,如下所示

SELECT vl.*, v.* FROM videos v LEFT JOIN videos_lang vl 
ON (vl.sig = 'de' OR vl.sig = 'en') AND v.idVideo = vl.idVideo
于 2013-04-27T07:25:19.537 回答