SQL三表连接查询
select a.*,c.f from (select * from a inner join b on a.a = b.a) as a inner join c on a.d = c.d
select a.*,c.f from a inner join b on a.a = b.a inner join b.d = b.d
两个都可以,第一个更容易理解,括号里的部分是查询出查询表A的数据和当表A的a=表B的a的数据,把这个结果集,再inner join c on a.d = c.d
查询出表B的d=表C的d 所对应的f的值。
扩展资料:
三个表左连接的sql语句
select
intro_web_page.id,
web_id,
web_name,
template_id ,
template_name,
template_param,
intro_web_page.sort_order
from intro_web_page left join intro_web on (web_id=intro_web.id)
left join intro_template on (intro_web_page.template_id=intro_template.id)
注:这里主要是看,当两个表和某一个表都有联系的时候,左连接left join on要怎么写。
更新语句
UPDATE issue INNER JOIN user ON `issue`.insert_uid and `user`.id INNER JOIN
(SELECT issue.id as id,issue.insert_uid as uid,`user`.school_id as school_id,school.area as area1 from issue,user,school
where issue.insert_uid=`user`.id and `user`.school_id=school.id) AS T1
ON issue.insert_uid=T1.uid
SET issue.area=T1.area1
翁奋替加: 车讯语句:select username,psw from (a1 left join a2 on a1.a1_id=a2.a1_id) left join a3 on a1.a1_id=a3.a1_id 这样写: SELECT S.SName AS 姓名, CS.CourseName AS 课程, C.Score AS 成绩 FROM Students AS S INNER JOIN Score AS C ...
海口市15624011802: SQL 三表联查 - ?
翁奋替加: select t.*,t1.hsdwmc , from a t join b t1 on t1.hsdwmc =t.thsdwmc join c t2 on t.fzmc = t2.fzmc 我上面这样写的需要所有表都有关联才行,如果不是所有表有关联换下面这种写法 select t.*,t1.hsdwmc , t2.fzmc from a t left join b t1 on t1.hsdwmc =t.thsdwmc left join c t2 on t.fzmc = t2.fzmc
海口市15624011802: sql 三表连接查询 - ?
翁奋替加: select student.stuno(学号),stuname(姓名),book.bookno(书号),count(amount),sum(price)as 应付 FROM student,book,bookorder where student.stuno=bookorder.stuno,book.bookno=bookorder.bookno group by stuno(学号) go
海口市15624011802: sql 3个表连接查询?
翁奋替加: select cid, aname, bname from 表a join 表b on 1 = 1 join 表c on 1=1 where cid='c_01' and 表a.aname='中国' and 表b.bname = '北京'
海口市15624011802: sql 3个表的连接查询 - ?
翁奋替加: select ml.ml_id,ml.ml_name, dl.dl_name,jd.jd_name,ml.ml_date from ml left join dl on ml.dl_id=dl.dl_id left join jd on ml.jd_id=jd.jd_id
海口市15624011802: SQL三表连接查询 - ?
翁奋替加: select a.*,c.f from (select * from a inner join b on a.a = b.a) as a inner join c on a.d = c.d select a.*,c.f from a inner join b on a.a = b.a inner join b.d = b.d 两个都可以,第一个更容易理解 括号里的部分 是查询出 查询表A的数据和当表A的a=表B的a的数据,把这个结果集 再inner join c on a.d = c.d 查询出表B的d=表C的d 所对应的f的值.
海口市15624011802: 一个3表的sqlserver连接查询怎么写 - ?
翁奋替加: select a.aid,a.aname,b.Bnum,c.Cstr from a,b,c where a.aid=b.aid and a.aid=c.aid---- 或者你要的是 select aid,aname from a union all select aid,bnum from b union all select aid,cstr from c;
海口市15624011802: 求三表联合查询的SQL查询语句?
翁奋替加: select a.id,a.name,b.name,c.name,a.table2_id,a.table3_id,c.table2_id from table1 a,table2 b,table3 c where a.table2_id=b.id and a.table3_id=c.id and b.id=c.table2_id order by a.id; 以上语句在Oracle11g r2上测试通过,同样可以用于其他数据库,如有疑问请留言
海口市15624011802: sql 3张表连接查询 - ?
翁奋替加: 补充下楼上的select c.id,c.name from a,b,c where c.id=b.cid and b.aid=a.id and a.id=xxx其实既然知道 a的id了,那就不用关联a表了 直接写 select c.id,c.name from b,c where c.id=b.cid and b.aid=xxx
海口市15624011802: sql数据库中,有三个表,我通过表连接查询结果如下图: - ?
翁奋替加: 按照第一列列名进行分组GROUP BY 未分组前:SELECT * FROM users 分组之后:SELECT * FROM users GROUP BY user_name