简体   繁体   中英

SQL join two SELECT statements - fairly easy

I am trying to combine two query results into an output that looks like:

datetime |  BC  |  AC     
----------------------
sun      |  1.0 |  0.9

through a sql call located below (in MySQL). I can make the individual statements query properly but the combined join does not work. Any suggestions? Thanks! Sorry about the formatting.

SELECT z.datetime, (z.w_1 + z.w_2 + z.w_3) as 'BC', (b.w_1 + b.w_2 + b.w_3) as 'AC'  
 (FROM monitor_data a  
   WHERE mon_id = "site A"  
     AND datetime > "2015-04-02 04:30:00" 
     AND datetime < "2015-04-02 06:30:00") z

 JOIN (SELECT b.datetime, b.w_1, b.w_2, b.w_3      
   FROM monitor_data b 
     WHERE mon_id = "site B"  
       AND datetime> "2015-04-02 04:30:00" 
       AND datetime < "2015-04-02 06:30:00") y 
 ON y.datetime = z.datetime

You haven't got the syntax quite right. To join two derived tables (z and y), you'll need to ensure that each derived table has a syntactically complete SELECT statement. Also, remember that the second derived table is now aliased as 'y', not b :

SELECT z.datetime, (z.w_1 + z.w_2 + z.w_3) as BC, 
       (y.w_1 + y.w_2 + y.w_3) as AC
FROM 
(
   SELECT a.datetime, a.w_1, a.w_2, a.w_3
   FROM monitor_data a 
   WHERE mon_id = 'site A' 
    AND datetime > '2015-04-02 04:30:00' AND datetime < '2015-04-02 06:30:00'
) z
JOIN 
(
  SELECT b.datetime, b.w_1, b.w_2, b.w_3
  FROM monitor_data b 
  WHERE mon_id = 'site B' 
    AND datetime > '2015-04-02 04:30:00' AND datetime < '2015-04-02 06:30:00'
) y
ON y.datetime = z.datetime;

Try this..

SELECT z.datetime, (z.w_1 + z.w_2 + z.w_3) as 'BC', (y.w_1 + y.w_2 + y.w_3) as 'AC'
(select a.datetime, a.w_1,a.w_2,a.w_3,
 FROM   monitor_data a 
 WHERE  mon_id = "site A" 
    AND datetime > "2015-04-02 04:30:00" 
    AND datetime < "2015-04-02 06:30:00") z

JOIN (SELECT b.datetime, b.w_1, b.w_2, b.w_3
      FROM   monitor_data b 
      WHERE  mon_id = "site B" 
         AND datetime > "2015-04-02 04:30:00" 
         AND datetime < "2015-04-02 06:30:00") y

ON y.datetime = z.datetime

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM