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

  • Автор темы Автор темы IMW
  • Дата начала Дата начала

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 таблицам делать. Можно ли написать такой запрос?
 
что ты хочешь достичь этим запросом? Ты поиск что-ли делаешь? Сделай несколько запросов к нескольким таблицам, если хочешь один резалт-сет, сделай UNION.
 
IMW
на Ваш вопрос было бы ответить проще, если бы Вы привели не пример Вашего заведомо НЕПРАВИЛЬНОГО запроса, а рассказали бы, какой результат Вы хотели бы получить :-)
 
ну понятно что делаю поиск, но не хочу потом долбатся с разбиением и т.д. и хотелось бы одним запросом сделать выборку.
 
у меня мускул 3.23. Вроде временную таблицу надо использовать в таком случае.
 
решение не претендующее на аксиому:
делаешь таблицу 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%"
 
Мой селект выдает ошибку
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
 
да , писал по памяти ...
в таблице 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%'
какая ошибка?
 
Да то ошибка была синтаксическая, я уже писал что исправил. Да последний вариант пашет так как надо, большое СПАСИБО, а то я думал уже через временную таблицу делать.
 
Сверху