Mysql
 sql >> база данни >  >> RDS >> Mysql

mySQL Distinct Join?

Опитайте това:

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

РЕДАКТИРАНЕ :Това може да работи по-добре:

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да конфигурирате Tomcat да се свързва с MySQL

  2. MYSQL изход в дървовиден формат ИЛИ Добавяне на ниво (Родител-Дете)

  3. Поръчайте SQL от най-силния LIKE?

  4. Сортиране на редове по редове в друга таблица за попълване на списък с най-актуалните неща

  5. Използвайте ключова дума SQL като псевдоним на колона