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

Tham gia nhiều bảng mà không cần khóa chung

Một cách tiếp cận khả thi:

SELECT l.Item, m.name, c.Color
      FROM linkage_Table AS l
INNER JOIN Material_Table AS m
        ON l.Material = '*'
           OR l.Material = m.name
INNER JOIN Color_Table AS c
        ON l.Color = '*'
           OR l.Color = c.Color

SQL Fiddle

Giải thích:truy vấn phải được tạo để các bảng 'material' và 'color' được kết hợp hoàn toàn (nối chéo), khi '*' được đưa ra trong trường tương ứng hoặc bằng nhau của các trường này. Và đó chính xác là những gì chúng tôi nhận được khi sử dụng 'ON l.someField = '*' OR l.someField = joined.someField' mệnh đề.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CHÈN giá trị từ một bảng vào một bảng khác

  2. Làm cách nào để tôi có thể sử dụng $ _get với hàm build_categories_options

  3. Kết quả SQL MIN và MAX có thêm toán tử DISTINCT trong MySQL

  4. Tổng hợp kết nối Perl

  5. Mẹo nhanh về thiết kế cơ sở dữ liệu quan hệ cho MySQL