Mysql
 sql >> Database >  >> RDS >> Mysql

Mysql JOIN (più) tabelle

Prova l'unione:

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

Modifica:puoi fare un'altra selezione da quei risultati, quindi puoi limitare, raggruppare o ordinare:

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

Modifica 2:per avere solo una riga da ciascuna tabella (tabella 2 e tabella 3) puoi utilizzare limite/raggruppa per/ordina per per ogni query (supponendo che tu abbia la data della colonna):

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