Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL JOIN (múltiplas) tabelas


Tente união:
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

Editar:Você pode fazer outra seleção desses resultados, então você pode limitar, agrupar ou ordenar:
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:Para ter apenas uma linha de cada tabela (tabela 2 e tabela 3), você pode usar limit/group by/order by para cada consulta (supondo que você tenha a data da coluna):
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