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 に答える