Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Непростой запрос с LEFT JOIN (Vitax) 15/11/2011 - 14:03:10
      Re: Непростой запрос с LEFT JOIN (Akina) 15/11/2011 - 18:54:14



From: Vitax - 15/11/2011 - 14:03:10
Subject:Непростой запрос с LEFT JOIN
-----------------
Ищу простое решение...

Есть три таблицы :

tA tB tC
+---+-------+ +---+-------+ +---+-------+
|id | aname | |id | bname | |id | cname |
+---+-------+ +---+-------+ +---+-------+
| 1 | Cat | | 1 | aaa | | 1 | xxx |
| 2 | Dog | | 1 | bbb | | 1 | yyy |
| 3 | Bird | | 2 | ccc | | 1 | zzz |
+---+-------+ | 2 | ddd | | 2 | www |
+---+-------+ +---+-------+

Нужен запрос где в итоге будет такой вид:

+---+-------+-------+-------+
|id | aname | bname | cname |
+---+-------+-------+-------+
| 1 | Cat | aaa | xxx |
| 1 | Cat | bbb | yyy |
| 1 | Cat | NULL | zzz |
| 2 | Dog | ccc | www |
| 2 | Dog | ddd | NULL |
| 3 | Bird | NULL | NULL |
+---+-------+-------+-------+

Сделал такой вот запрос:

SELECT tA.*,
tB.bname,
tC.cname
FROM tA
LEFT OUTER JOIN tB
ON tA.id = tB.id
LEFT OUTER JOIN tC
ON tB.id = tC.id
ORDER BY
tA.id,
tB.bname,
tC.cname

Выдает не совсем то что нужно:

+---+-------+-------+-------+
|id | aname | bname | cname |
+---+-------+-------+-------+
| 1 | Cat | aaa | xxx |
| 1 | Cat | aaa | yyy |
| 1 | Cat | aaa | zzz |
| 1 | Cat | bbb | xxx |
| 1 | Cat | bbb | yyy |
| 1 | Cat | bbb | zzz |
| 2 | Cat | ccc | www |
| 2 | Dog | ddd | www |
| 3 | Bird | NULL | NULL |
+---+-------+-------+-------+

Чувствую, что где то нужно дополнительное условие вставить, что бы выдавало:
- количество строк по каждому id
- в зависимости от того, где максимальное количество значений id;

Примерно так мне думается, а как на самом деле нужно построить запрос, пока де придумал...прошу наставить на путь истинный.





[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
40721



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |