Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

mySQL riêng biệt Tham gia?

Hãy thử điều này:

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

Bản trình diễn SQLFiddle

CHỈNH SỬA :Điều này có thể hoạt động tốt hơn:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ví dụ về MICROSECOND () - MySQL

  2. Có vấn đề gì xảy ra với các phép nối không sử dụng từ khóa JOIN trong SQL hoặc MySQL không?

  3. Cách tách văn bản được phân tách bằng dấu phẩy trong thủ tục được lưu trữ trong MySQL

  4. MySQL - Nhiều bộ kết quả

  5. Không kết nối được với mysql tại 127.0.0.1:3306 với quyền truy cập root của người dùng bị từ chối đối với người dùng 'root' @ 'localhost' (sử dụng mật khẩu:CÓ)