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