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




MySQL.RU - Webboard



Вернуться
2 LEFT JOIN одной таблицы (Михаил) 22/11/2007 - 18:40:56
      Re: 2 LEFT JOIN одной таблицы (Михаил) 22/11/2007 - 18:44:17
      Re: 2 LEFT JOIN одной таблицы (Пётр) 04/06/2008 - 19:07:42



From: Михаил - 22/11/2007 - 18:40:56
Subject:2 LEFT JOIN одной таблицы
-----------------
Гуру, помогите решить проблему:
есть 2 таблицы:
mysql> select * from products;
+-------------+---------------+
| products_id | products_name |
+-------------+---------------+
| 1 | one |
| 2 | two |
| 3 | three |
| 4 | four |
| 5 | five |
+-------------+---------------+
5 rows in set (0.00 sec)

mysql> select * from products_extra;
+-------------+----------+-------------+
| products_id | extra_id | extra_value |
+-------------+----------+-------------+
| 1 | 1 | 1-1 |
| 1 | 2 | 1-2 |
| 1 | 3 | 1-3 |
| 2 | 1 | 2-1 |
| 2 | 2 | 2-2 |
| 3 | 1 | 3-1 |
| 3 | 2 | 3-2 |
| 3 | 3 | 3-3 |
| 4 | 1 | 4-1 |
| 4 | 2 | 4-2 |
| 5 | 1 | 5-1 |
| 5 | 2 | 5-2 |
+-------------+----------+-------------+
12 rows in set (0.00 sec)

нужно выбрать все из обеих таблиц, но так чтобы 2-я таблица превратилась в столбцы результата:

select
products.*,
a1.extra_value r1,
a2.extra_value r2,
a3.extra_value r3
from
products
left join products_extra a1 using(products_id)
left join products_extra a2 using(products_id)
left join products_extra a3 using(products_id)
where
a1.extra_id = 1
and a2.extra_id = 2
and a3.extra_id = 3;
+-------------+---------------+------+------+------+
| products_id | products_name | r1 | r2 | r3 |
+-------------+---------------+------+------+------+
| 1 | one | 1-1 | 1-2 | 1-3 |
| 3 | three | 3-1 | 3-2 | 3-3 |
+-------------+---------------+------+------+------+

вроде все нормально, но не выбираются те строки, для которых не определён products_extra с кодом 2. А нужно чтобы там был NULL или что-то типа того.

Подскажите как это можно сделать?
Или другой вариант, если есть...



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

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

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



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