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

Обединяване на множество таблици без общ ключ

Един възможен подход:

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

Обяснение:заявката трябва да бъде изградена така, че таблиците "материал" и "цвет" да се съединят напълно (кръстосано свързване), когато '*' се дава в съответното поле или чрез равенство на тези полета. И точно това получихме, като използвахме 'ON l.someField = '*' OR l.someField = joined.someField' клауза.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Има ли причина все още да използвате змийски случай за таблици и колони на базата данни?

  2. Изберете увеличено цяло число

  3. Заредете Javascript масив с данни от базата данни MYSQL

  4. Как мога да създам приложение за Android с локална база данни MySQL?

  5. SELECT, където стойността на реда съдържа низ MySQL