SQL左边连接超过三个表

时间:2013-11-28 13:01:23

标签: sql

我需要SQL语句的帮助: - (

让我们说有三个表:

Table1
id / vorname / user

Table2
id / groupename / user / level

Table 3
id /groupename / description

目前我的SQL看起来像这样:

select table1.vorname, table2.groupename, table2.user, table2.level from table2 left join table1 on table2.user = table1.user;

所以我得到表2的所有数据(用户)和表1中的正确uservorname。

现在我卡住了......

我有表3中的id,需要将记录集限制为只有那些组合。

在这种情况下的关键是groupename所以我必须得到Table3中的groupename,其中id与我的相同,并将groupename与table2中的groupename进行比较,以限制记录仅限于此组... / p>

Table2.groupename = Table3.groupename

但我不知道如何解决它。

谢谢!

2 个答案:

答案 0 :(得分:1)

select     table1.vorname, 
           table2.groupename, 
           table2.user, 
           table2.level 
from       table2 
inner join table3 on table2.groupname = table3.groupname
left join  table1 on table2.user = table1.user

答案 1 :(得分:1)

你可以使用像

这样的老派
select table1.vorname, table2.groupename, table2.user, table2.level 
from table1, table2, table3 
where table2.user = table1.user 
and table2.groupename = table3.groupename
and table3.id = '[my id]'

使用连接可能更有效,并且可能使意图更清晰。

select table1.vorname, table2.groupename, table2.user, table2.level 
from table1
inner join table2 on table2.user = table1.user
inner join  table3 on table2.groupename = table3.groupename
where table3.id = '[my id]'