谁对SQL嵌套查询比较熟悉,帮下忙
三个表 user表如下:
id department_id name
1 1 张三
2 1 李四
3 2 王五
department表
id department_name
1 办公室
2 财务科
报销 表
ID userID money
1 1 100.00
2 3 50.00 如何写SQL语句查询得出
id(user) department_name name(user)
1 办公室 张三
3 财务科 王五 这样的结构出来 ,就是查询 user表 显示出 部门 条件是在报销 表里有他的记录谢谢
三个表 user表如下:
id department_id name
1 1 张三
2 1 李四
3 2 王五
department表
id department_name
1 办公室
2 财务科
报销 表
ID userID money
1 1 100.00
2 3 50.00 如何写SQL语句查询得出
id(user) department_name name(user)
1 办公室 张三
3 财务科 王五 这样的结构出来 ,就是查询 user表 显示出 部门 条件是在报销 表里有他的记录谢谢
select t.* ,u.name from department d inner join user u on d.id=u.department_id
inner join 报销表 t on t.userid=d.id
select u.id,department_name,u.name
from user as u
join department as d on u.department_id=d.id
join 报销 as b on userID=u.id
如果查询条件是在报销 表里有他的记录 并且记录中 MONEY >50结果显示:id(user) department_name name(user)
1 办公室 张三
select t.* ,u.name from department d inner join user u on d.id=u.department_id
inner join 报销表 t on t.userid=d.id and t.money>50
select t.* ,u.name from department d inner join user u on d.id=u.department_id第二个语句
select t.* from department d inner join 报销表 t on t.userid=d.id
出现这种情况
如果报销表
报销 表
ID userID money
1 1 100.00
2 3 50.00
3 1 120.00 结果是
id(user) name(user)
1 张三
1 张三
两个同时用
select t.* ,u.name from department d inner join user u on d.id=u.department_id
inner join 报销表 t on t.userid=d.id and t.money>50说语法错误, 我是用DELPHI
select distinct t.* ,u.name from department d inner join [user] u on d.id=u.department_id
inner join 报销表 t on t.userid=d.id and t.money>50
select Table.U_id as 'id(user)',
department表.department_name as department_name,
user.name as 'name(user)'
from department表,user,
(select user.id As U_id , department表.id as dep_id
from user, department表,报销表
where user.id=报销表.userID
and department表.id=报销表.ID
) As Table
where department表.id=table.dep_id
and user.id = table.U_id
inner join 报销表 t on t.userid=d.id where t.money>50
结帖