|
|
|
| Помогите оптимизировать запрос.
Допустим есть такой запрос к двум таблицам.
mysql->SELECT a.name AS name, b.name AS bname FROM table1 AS a, table2 AS b WHERE a.id=b.parent AND b.id='1'
|
Запрос прекрасно выполняется, но есть одно но! Если не будет совпадения по первичному и вторичному ключам, то будет возвращенно 0 записей.
Как можно это побороть?
Чтоб например, при отсутствие записи в таблице а, вывелость пустое значение name, а поле bname содержало какую-нибудь информацию. | |
|
|
|
|
|
|
|
для: Artemy
(15.03.2006 в 17:32)
| | Как-то так:
SELECT a.name AS name, b.name AS bname FROM table1 AS a LEFT JOIN table2 AS b ON a.id=b.parent AND b.id='1'
|
| |
|
|
|
|
|
|
|
для: Artemy
(15.03.2006 в 17:32)
| | SELECT a.name AS aname, b.name AS bname
FROM table1 as a
RIGHT JOIN table2 as b ON a.id=b.parent
WHERE b.id=1 | |
|
|
|
|
|
|
|
для: Trianon
(15.03.2006 в 17:52)
| | Вот уже и женился, а все одно мне "лево" ближе:) | |
|
|
|
|
|
|
|
для: Loki
(15.03.2006 в 17:55)
| | И правильно. RIGHT JOIN не рекомендован к применению.
А вот в ON у Вас явно лишнее условие, к связываию таблиц отношения не имеющее. | |
|
|
|
|
|
|
|
для: Trianon
(15.03.2006 в 18:01)
| | Loki, Trianon большое Вам спасибо! | |
|
|
|
|
|
|
|
для: Trianon
(15.03.2006 в 18:01)
| | Да. Это я зевнул... | |
|
|
|
|
|
|
|
для: Loki
(15.03.2006 в 17:55)
| | А не все базы данных RIGHT JOIN поддерживают... | |
|
|
|