|
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,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
40721
|
|