Помогите с JOIN- запросом

virakochi

Устал
Помогите с JOIN- запросом

Помогите составить JOIN-запрос.

table1, table2
В table2 строка аттрибутов записи из table1


Суть такова: если в table2 нет соответствующей записи для записи из table1, нужно выбрать, иначе нужно проверить состояние аттрибутов и исходя из этого выбрать или нет.

Пытаюсь что-то подобное:
Код:
SELECT a.* 
FROM table1 a
INNER JOIN table2 b ON
    IF (EXISTS(SELECT * FROM table2 k WHERE k.table1_id = a.id),
        b.attribute = 1,
        1)
Первая часть условия отрабатывает так как надо, если же нужно по второй части условия, то из table2 выбираются все записи и соединение идет по всем, а необходимо соединять по одной как бы фиктивной.

Спасибо за помощь.

-~{}~ 10.08.05 15:13:

Если хотите, кидайте в меня тухлыми яйцами, но нашел ужасающее по виду, но тем не менее работающее решение:

Код:
SELECT a.* 
FROM table1 a
INNER JOIN 
(SELECT  aa.table1_id AS 'table1_id', IF (bb.attribute IS NULL, 1, bb.attribute) AS    'attribute'
    FROM table1 aa
    LEFT JOIN table2 bb ON aa.table1_id = bb.table1_id) ON b.attribute = 1
 

tashkentchi

Новичок
[SQL]
SELECT table1.*
FROM table1
LEFT JOIN table2 ON table2.table1_id = table1.id
WHERE table2.table1_id IS NULL OR table2.attribute = 1
[/SQL]
 

virakochi

Устал
Спасибо) Не допер условие соединения вынести в WHERE.

ПС. Большое видится издалека.
 
Сверху