MySql-有条件的执行JOIN [英] MySql - executing JOIN with condition

查看:287
本文介绍了MySql-有条件的执行JOIN的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have 2. tables: videos and videos_lang. I join these tables with LEFT JOIN when I want to get information about a video in selected language. And here is the problem: if the translation in selected language doesn't exist, I want to join translation in default language (which always exists). How can I do that? I use that sql query:

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

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

How to get translation where vl.sig = 'en' (en is the defualt language)?

推荐答案

尝试此查询-

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-有条件的执行JOIN的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆