boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 请问这个查询如何用sql join实现? (转载)
相关主题
sql question
被默据了,发amazon面经
初级SQL问题
学习sql和stored procedure, 有什么书推荐吗? (转载)
【有什么说可以恶补一下data warehousing的知识?】
求建议,要面没有project经验,但自学了的东西
SQL 面试题 - 请高手指点
请教SQL问题
问一个数据库的题 (转载)
公司内推机会 - Software Developer 职位
相关话题的讨论汇总
话题: count话题: select话题: having话题: 用户话题: group
进入JobHunting版参与讨论
1 (共1页)
j****d
发帖数: 1675
1
【 以下文字转载自 Programming 讨论区 】
发信人: jjjddd (james), 信区: Programming
标 题: 请问这个查询如何用sql join实现?
发信站: BBS 未名空间站 (Fri Aug 13 14:22:57 2010, 美东)
假设商店数据库有两个table A和B
table A是用户表,存放用户id,姓名,电话,地址 etc
table B是订单表,存放订单id, 产品id,下单用户id,etc
请问能不能只用sql join来实现这个查询:找到所有至多下过2次订单的用户名、电话
、地址?比方说有个用户下了3次单就不算。2次或1次才算。不许用stored procedure
或java等编程方式实现。
我面试时被问到这个问题,当时没答出来。汗
x***y
发帖数: 633
2
Did I missing something?
select name, phoneNumber, address
from A inner join B
on A.usr_id=B.usr_id
group by B.usr_id
having count(*)<3
l*****a
发帖数: 559
3
SELECT * FROM `用户表` WHERE `用户id` IN (SELECT `下单用户id` FROM `订单表`
GROUP BY `下单用户id` HAVING COUNT(*)<=2)
这个是store procedure不?
x*****p
发帖数: 1707
4
Customer(cid, name, address, phone)
Order(oid, product, cid)
The query is
SELECT c.cid, c.name, c.address, c.phone
FROM Customer c, Order o
WHERE c.cid = o.cid
GROUP BY c.cid
HAVING count(*)<=2
j****d
发帖数: 1675
5
多谢,很久没用having count,忘了。。。
j****d
发帖数: 1675
6
you failed, kaka

【在 x***y 的大作中提到】
: Did I missing something?
: select name, phoneNumber, address
: from A inner join B
: on A.usr_id=B.usr_id
: group by B.usr_id
: having count(*)<3

j****d
发帖数: 1675
7
you failed, kaka

【在 x*****p 的大作中提到】
: Customer(cid, name, address, phone)
: Order(oid, product, cid)
: The query is
: SELECT c.cid, c.name, c.address, c.phone
: FROM Customer c, Order o
: WHERE c.cid = o.cid
: GROUP BY c.cid
: HAVING count(*)<=2

j****d
发帖数: 1675
8
this one works.

`

【在 l*****a 的大作中提到】
: SELECT * FROM `用户表` WHERE `用户id` IN (SELECT `下单用户id` FROM `订单表`
: GROUP BY `下单用户id` HAVING COUNT(*)<=2)
: 这个是store procedure不?

j****d
发帖数: 1675
9
these 2 work too:
select user_name, phone, count(u.user_id)
from users u join order
on u.user_id = order.user_id
group by user_name, day_phone
having count(*) <3
select user_name, phone, count(u.user_id)
from users u , order
where u.user_id = order.user_id
group by user_name, day_phone
having count(*) <3
s*****t
发帖数: 737
10
really?

you failed, kaka

【在 j****d 的大作中提到】
: you failed, kaka
1 (共1页)
进入JobHunting版参与讨论
相关主题
公司内推机会 - Software Developer 职位
SQL debug step into a store procedure from another one (转载)
run SQL stored procedure from python (转载)
今天被软软坑了。
内推一个DB Engineer职位,3+年经验
内推sql reporting analyst (转载)
问个sql小提。大牛勿进
请教SQL面试题
求助一道sql问题,谢谢
Google电面
相关话题的讨论汇总
话题: count话题: select话题: having话题: 用户话题: group