Mysql JOIN (multiple) tables

前端 未结 2 510
小蘑菇
小蘑菇 2021-01-23 04:23

I have 3 tables. 2 of them are the same (same columns, different data), and the third has some info data about other 2. Database looks like this:

Table 1:



        
相关标签:
2条回答
  • 2021-01-23 04:58

    You can use the UNION statement:

    (
        SELECT Name, Temperature, Pressure
        FROM Table1 INNER JOIN Table2 ON Table1.Name = Table2.Name
    )
    UNION
    (
        SELECT Name, Temperature, Pressure
        FROM Table1 INNER JOIN Table3 ON Table1.Name = Table3.Name
    )
    
    0 讨论(0)
  • 2021-01-23 05:01

    Try 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
    

    Edit: You can make another select from those results, then you can limit, group or order:

    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: To have only one row from each table (table 2 and table 3) you can use limit/group by/order by for each query (assuming you have column date):

    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
    
    0 讨论(0)
提交回复
热议问题