2011-01-06 2 views
0

у меня есть следующие настройки таблицы:Как подключиться к данным «один ко многим»?

t1 имеет две колонки: id и flag_a.

id является уникальным идентификатором, а flag_a является булевым.

t2 имеет три колонки, id и parent_id и flag_b.

id является уникальным идентификатором, parent_id является одним из id-х из t1 и flag_b является логическим.


Мне нужно, чтобы выполнить эту псевдо-запрос:

SELECT t2.id FROM t2 WHERE flag_b = 0 AND t1.flag_a = 0 


На английском языке: мне нужно все id-х из t2, где flag_b ложно (0) и где flag_a принадлежность к parent_idt2 также является ложным.


Я знаком с идеей использования JOIN, чтобы достичь такого рода вещей, но я не очень понимаю, как это сделать.

+2

Это не отношениям многих ко многим, хотя ... Это один ко многие –

+0

Спасибо Стефан. Я изначально написал один, но много - казался более правильным. Исправлена. :) –

ответ

1
SELECT t2.id 
FROM t2 INNER JOIN t1 
    ON t2.parent_id=t1.id 
WHERE flag_a=0 AND flab_b=0 
+0

Отлично, что сделал. Благодаря! –

1
SELECT t2.id 
     FROM t1 
INNER JOIN t2 ON t1.id = t2.Parent_id 
    WHERE t1.flag_a = 0 
     AND t2.flag_b = 0 

Надеется, что это помогает,

1
Select t2.id 
From 
    t2 
    INNER JOIN t1 
    ON t2.parent_id = t1.ID 
     and t2.Flag_B = 0 
     and t1.Flag_a = 0 

Или

Select t2.id 
From 
    t2 
    INNER JOIN t1 
    ON t2.parent_id = t1.ID 

WHERE 
    t2.Flag_B = 0 
    and t1.Flag_a = 0 
0
SELECT t2.id 
FROM t2 INNER JOIN t1 ON t2.parent_id = t1.id 
WHERE t2.flag_b = 0 AND t1.flag_a = 0 
Смежные вопросы