在一个表中连接两行,在第二个表中连接一行

时间:2011-10-09 20:01:37

标签: sql select join

我有两张表 - reportbouydata

report
------
id  sun
1   overcast

bouydata
----------
reportid  bouy   winddir
1         46026  340
1         46027  345

我想将所有3行选为一行。这是我的疑问:

  SELECT report.id, sun, bouy1.bouy as bouy1, bouy1.winddir as winddir1, bouy2.bouy as bouy2, bouy2.winddir as winddir2
    FROM report 
    LEFT JOIN bouydata bouy1 
    ON report.id = bouy1.reportid 
    LEFT JOIN bouydata bouy2 
    ON report.id = bouy2.reportid

出于某种原因,我要回四行:

1   Slightly Overcast   46026   340 46026   340
1   Slightly Overcast   46026   340 46027   345
1   Slightly Overcast   46027   345 46026   340
1   Slightly Overcast   46027   345 46027   345

它不是只选择唯一的行并将它们组合成一行。任何人都可以帮助我得到我想要的结果:

1   Slightly Overcast   46026   340 46027   345

1 个答案:

答案 0 :(得分:0)

我不知道你为什么要进行双连接,使用相同的表和相同的条件。这只是重复信息。

SELECT report.id, sun, bouy, winddir
FROM report 
LEFT JOIN bouydata
ON report.id = bouydata.reportid 

会给你:

report.id   sun       bouy   winddir
1           overcast  46026  340
1           overcast  46027  345