2011-01-06 59 views
0

我有如下表設置:如何加入此一對多數據?

t1有兩列:id,並flag_a

id是一個唯一的標識符,而flag_a是一個布爾值。

t2有三列,id,並parent_id,並flag_b

id是唯一標識符,parent_id是從t1id的之一,和flag_b是一個布爾值。


我需要履行這個僞查詢:

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


英文:我需要的所有id的從t2,其中flag_b是假的(0),並在flag_a屬於t2parent_id也是錯誤的。


我很熟悉使用JOIN來完成這種事情的想法,但我沒有太多的關於如何真正去做這件事的線索。

+2

這不是一個多對多的關係,但...這就是一對多 – 2011-01-06 04:07:21

+0

謝謝斯特凡。我原本寫了一個,但很多 - 看起來更正確。固定。 :) – 2011-01-06 04:24:48

回答

1
SELECT t2.id 
FROM t2 INNER JOIN t1 
    ON t2.parent_id=t1.id 
WHERE flag_a=0 AND flab_b=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