Поик по таблицам

IMW

Guest
Поик по таблицам

Есть 2 таблицы

a

id_a name_a
1 bc
2 hg
3 abc
4 rtty

b

id_b name b
1 ghu
2 gbc
3 bc

Запрос типа
select id_a, id_b
from a,b
where name_a like "%bc%" and name b like "%bc%"

возвращает что то типа такого
id_a id_b
1 2
3 2
1 3
3 3

А хотелось бы что то типа этого
id_a id_b
1 null
3 null
null 2
null 3

Ну и что б потом можно было запрос и больше чем к 2 таблицам делать. Можно ли написать такой запрос?
 

alexhemp

Новичок
что ты хочешь достичь этим запросом? Ты поиск что-ли делаешь? Сделай несколько запросов к нескольким таблицам, если хочешь один резалт-сет, сделай UNION.
 

Popoff

popoff.donetsk.ua
IMW
на Ваш вопрос было бы ответить проще, если бы Вы привели не пример Вашего заведомо НЕПРАВИЛЬНОГО запроса, а рассказали бы, какой результат Вы хотели бы получить :)
 

IMW

Guest
ну понятно что делаю поиск, но не хочу потом долбатся с разбиением и т.д. и хотелось бы одним запросом сделать выборку.
 

IMW

Guest
у меня мускул 3.23. Вроде временную таблицу надо использовать в таком случае.
 

chira

Новичок
решение не претендующее на аксиому:
делаешь таблицу c одним полем и одной записью
CREATE TABLE dual (dummy VARCHAR(1));
INSERT INTO dual VALUES ('X');

делаешь свой селект:
select a.id id_a, b.id id_b
from dual
LEFT JOIN a ON a.name like "%bc%"
LEFT JOIN b ON b.name like "%bc%"
 

IMW

Guest
Мой селект выдает ошибку
select news.id_news from dual left join news on news.n_name
LIKE '%edit%'

не хочет что то он обьединять. Если без второй таблицы то ошибку не выдает.

-~{}~ 02.02.05 17:12:

Запрос выполняется только он возвращает таблицу типа такую
id_a id_b
1 2
3 2
1 3
3 3

как я уже получал только немного другим запросом
а хотелось бы типа такой

id_a id_b
1 null
3 null
null 2
null 3
 

chira

Новичок
да , писал по памяти ...
в таблице dual должно быть 2 записи, если мы просматриваем 2 таблицы
INSERT INTO dual VALUES ('1');
INSERT INTO dual VALUES ('2');
и тогда SQL
select a.id id_a, b.id id_b
from dual
LEFT JOIN a ON dual.dummy='1' AND a.name like "%bc%"
LEFT JOIN b ON dual.dummy='2' AND b.name like "%bc%"
Мой селект выдает ошибку
select news.id_news from dual left join news on news.n_name
LIKE '%edit%'
какая ошибка?
 

IMW

Guest
Да то ошибка была синтаксическая, я уже писал что исправил. Да последний вариант пашет так как надо, большое СПАСИБО, а то я думал уже через временную таблицу делать.
 
Сверху