多表操作

1.根据两个表达关系,搜索两个表。
select * from artist,painting where artist.a_id = painting.a_id;
2.另一种方法,用inner join代替逗号,where变成on。
select * from artist inner join painting on artist.a_id = painting.a_id;
3.如果两个表达字段a_id名字相同,可以用using达到相同的效果。
select * from artist inner join painting using(a_id);
这样查询出的结果只返回一个a_id。
4.通常是使用on或using来制定如何连接表,使用where限制选择已连接的行。例如:
select * from artist inner join painting on artist.a_id = painting.a_id where painting.state='北京';
5.再添加一张表,实现更复杂的多表查询。
select artist.name,painting.title,states.name,painting.price
from artist inner join painting inner join states
on artist.a_id=painting.a_id and painting.state=states.abbrev;
6.哪些是梵高的作品?可以这样查询。
select painting.title
from artist inner join painting on artist.a_id=painting.a_id
where artist.name='梵高';
7.蒙娜丽莎是谁画的?可以这样查。
select artist.name
from artist inner join painting on artist.a_id=painting.a_id
where painting.title = '蒙娜丽莎';
8.你在北京或台湾买了那些画?
select distinct artist.name
from artist inner join painting on artist.a_id=painting.a_id
where painting.state in('台湾','北京');
9.这里的distinct是不同的意思,就是说每个画家的名字你只想显示一次。
你甚至可以产生表达摘要,比如,你想知道,每个画家各有多少作品。
select artist.name,count(*) as '画的数量'
from artist inner join painting on artist.a_id=painting.a_id
group by artist.name;
10.你可以显示每个画家花费了多少钱,包括综合和每幅作品的平均花费。
select artist.name,
count(*) as '画的数量',
sum(painting.price) as 'total price',
avg(painting.price) as 'average price'
from artist inner join painting on artist.a_id=painting.a_id
group by artist.name;
11.
'select qg_singlepage.qg_id,qg_name,qg_filename,qg_display,qg_location,qg_show from ' .
'qg_singlepage inner join qg_termianl using(qg_uid) where ' .
'qg_termianl.qg_name like \'%'.$like.'%\' and qg_singlepage.qg_uid like \'%'.$_GET['id'].'%\' ' .
'limit '.$Page->firstRow.','.$Page->listRows limit 0,2;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值