sql >> Databasteknik >  >> RDS >> Mysql

Sammanfoga flera bord utan gemensam nyckel

Ett möjligt tillvägagångssätt:

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

Förklaring:frågan måste byggas så att "material" och "color" tabeller sammanfogas antingen helt (korssammanfogning), när '*' ges i motsvarande fält, eller genom likhet mellan dessa fält. Och det är precis vad vi fick genom att använda 'ON l.someField = '*' OR l.someField = joined.someField' klausul.



  1. Fel vid försök att köra pgAdmin4

  2. Hur får man fråga om kolumnattribut från tabellnamn med PostgreSQL?

  3. Hur underhåller jag PHP-sessioner över flera domäner på samma server?

  4. Google BigQuery ODBC-drivrutin