Соединение двух строк в одной таблице с одной строкой во второй таблице - PullRequest
0 голосов
/ 10 октября 2011

у меня две таблицы - report и bouydata

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 голосов
/ 10 октября 2011

Я не знаю, почему вы делаете двойное соединение, с теми же таблицами и теми же условиями.Это просто дублирует информацию.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...