sql >> Databasteknik >  >> RDS >> Mysql

mySQL Distinct Gå med?

Prova detta:

SELECT     a.locale, c.text AS text_1, d.text AS text_2
FROM       (SELECT DISTINCT locale FROM i18n) a
CROSS JOIN table_1 b
LEFT JOIN  i18n c ON b.text_1 = c.id_i18n AND a.locale = c.locale
LEFT JOIN  i18n d ON b.text_2 = d.id_i18n AND a.locale = d.locale

SQLFiddle Demo

REDIGERA :Det här kanske fungerar bättre:

SELECT
    a.locale, b.text_1, c.text_2
FROM
    (SELECT DISTINCT locale FROM i18n) a
LEFT JOIN
(
    SELECT b.locale, b.text AS text_1
    FROM   table_1 a
    JOIN   i18n b ON a.text_1 = b.id_i18n
) b ON a.locale = b.locale
LEFT JOIN
(
    SELECT b.locale, b.text AS text_2
    FROM   table_1 a
    JOIN   i18n b ON a.text_2 = b.id_i18n
) c ON a.locale = c.locale

SQLFiddle Demo



  1. Duplicerade dataproblem och hur man åtgärdar dem

  2. SQL för att uppdatera lönen för anställda med deras avdelnings snittlön

  3. MySQL jämför DATE-sträng med sträng från DATETIME-fältet

  4. MariaDB LAST_INSERT_ID() Förklarad