日志表 log:
id desc userid
1 查询 1
2 删除 2用户表 user:
id username
1 aaa
删除用户表 del_user:
id userid username
1 2 bbbb表结构如上,请写一条sql语句,查询日志id,日志desc,用户名username。
id desc userid
1 查询 1
2 删除 2用户表 user:
id username
1 aaa
删除用户表 del_user:
id userid username
1 2 bbbb表结构如上,请写一条sql语句,查询日志id,日志desc,用户名username。
要查询所有的记录 需要关联 del_user表
你的第二个表只有id,没有userid,和第一个表怎么关联?和第三个表又怎么关联?
这三张表中的id都是主键 log表的userid字段对应第二张表的id字段,对应第三张表的userid字段,为了简便起见,我把表结构修改一下:
日志表 log:
id desc userid
1 查询 1
2 删除 2用户表 user:
userid username
1 aaa
删除用户表 del_user:
userid username
2 bbbb请写一条sql语句,查询日志id,日志desc,用户名username。
这应该比较好理解
log.desc,
user.username,
del_user.username
from user,del_user,log
where log.userid=user.userid and log.userid=del_user.userid
如果表2和表3中的数据是互斥的 那么可以这样
select log.id, log.desc, nvl(user.username, del_user.username) as username
from log
left join user on (log.userid= user.userid)
left join del_user on (del_user.userid= log.userid)
对2、3表中的记录是互斥的 sql语句写的很好
但是nvl(user.username, del_user.username)是只能用到oracle数据库 我现在用的数据库是mysql
能不能用标准的sql处理或者mysql有相似功能的函数吗
from logs log
left join user on (log.userid= user.userid)
left join del_user on (del_user.userid= log.userid);上面是mysql中的用法,仍然感谢7楼