Запрос из 3 таблиц

Дед Анвирыч

Новичок
Запрос из 3 таблиц

Уважаемые, Какая-то мистика творится...

table a:
id, field1

table b:
a_id, field2

table c:
a_id, field3

[SQL]
SELECT a.* FROM a, b, c
WHERE
(b.a_id=a.id and b.filed_2 like 'blablabla%')
or
(c.a_id=a.id and c.filed_3 like 'blablabla%')
[/SQL]

- результат пустой. Соответсвующие записи присутствуют.
Но это еще не всё.
[SQL]
SELECT * FROM a, b, c
[/SQL]
например , так же не возвращает ничего...

Как быть, уважаемые?
 

Falc

Новичок
Дед Анвирыч
Если второй у тебя ничего не возвращает, то наложение доп условий темболее ничего не вернет
 

SHPAna

Guest
Я могу ошибаться в терминах (поправьте если не прав):
При простом выборе "SELECT * FROM a, b, c" происходит перемножение таблиц, следовательно, если одна пустая, то и результат умножения - пустой.

Не очень понятен вопрос (его вообще не было), но кажется, человеку нужно инфа по JOIN.

PHP:
select
a.*
from
a
join b on b.a_id = a.id
join c on c.a_id = a.id
where
b.filed_2 like 'blablabla%'
or 
c.filed_3 like 'blablabla%'
 

Falc

Новичок
>>но кажется, человеку нужно инфа по JOIN.

А точнее по LEFT JOIN
 

Falc

Новичок
Дед Анвирыч
>>Посмотри внимательно - они разные
Отличаются тем что в первом есть доп. условие.
 

Дед Анвирыч

Новичок
сейчас попробую джойном
2 Falc: в первом селекте выбор из одной таблицы, условия на три, во втором выбор из 3 таблиц
MSSQL на это все ок говорит :(
 

Falc

Новичок
Дед Анвирыч
>>MSSQL на это все ок говорит
Ты уверен что ты точно такойже запрос посылал.
Почитай про JOIN и LEFT JOIN и почувствуй разницу.
 
Сверху