Mysql
 sql >> Base de données >  >> RDS >> Mysql

Tables MySQL JOIN (plusieurs)

Essayez l'union :

SELECT table1.name, temperature, pressure 
FROM table1 inner join table2 ON
table1.name = table2.name
UNION
SELECT table1.name, temperature, pressure 
FROM table1 inner join table3 ON
table1.name = table3.name

Modifier :Vous pouvez faire une autre sélection parmi ces résultats, puis vous pouvez limiter, grouper ou commander :

SELECT * FROM
(
    SELECT table1.name, temperature, pressure 
    FROM table1 inner join table2 ON
    table1.name = table2.name
    UNION
    SELECT table1.name, temperature, pressure 
    FROM table1 inner join table3 ON
    table1.name = table3.name
) as JoinedTable
LIMIT 0, 1

Edit 2 :Pour n'avoir qu'une seule ligne de chaque table (table 2 et table 3), vous pouvez utiliser limit/group by/order by pour chaque requête (en supposant que vous ayez la date de la colonne) :

SELECT table1.name, temperature, pressure 
FROM table1 inner join table2 ON
table1.name = table2.name
ORDER BY date DESC
LIMIT 0, 1
UNION
SELECT table1.name, temperature, pressure 
FROM table1 inner join table3 ON
table1.name = table3.name
ORDER BY date DESC
LIMIT 0, 1