MySQL使用不允许用户ID的策略左边加入3个表

时间:2013-12-17 10:19:21

标签: mysql sql join

我有3个表应该与Left Join结合,这是好的。但现在我只想要一些信息,例如只有性别是男性,也没关系。同时显示性别为空的所有行,也可以。但现在我只想显示允许的行。允许的人在例如之前澄清不要显示ID为1的行。这就是问题所在。 E.g。

table1 
id | tab2_id | gender_id | bla

table2 
id | name | bla | blub

table3 
id | tabl_id | gender_id | allowed 
1  | 1       | 1         | 1 
2  | 2       | 1         | 2

到目前为止的查询:

Select table1. gender_id, table1.bla, table2.name, table2.bla 
From table1
Left Join table2 ON table1.tab2_id = table2.id
LEFT Join table3 on table1.tab2_id = table3.tab1_id
Where table1.gender_id = '1'
OR table1.gender_id IS NULL
AND table3.allowed <> 1

我希望这是一个例子。主要问题是允许的问题。我可以为性别1选择所有行,但我不想选择Pollicy Table3中某些用户不允许的这些行

1 个答案:

答案 0 :(得分:0)

以这种方式试试

SELECT table1.gender_id, table1.bla, table2.name, table2.bla 
  FROM table1 LEFT JOIN table2 
    ON table1.tab2_id = table2.id LEFT JOIN table3 
    ON table1.tab2_id = table3.tab1_id 
   AND table3.allowed <> 1
 WHERE table1.gender_id = 1
    OR table1.gender_id IS NULL