请问一道SQL的查询题?
40、现有订单表orders,包含数据如下表。若查询既订购了产品P01,又订购了产品P02的顾客编号,可以执行以下()sql语句。(选择两项)cid(顾客编号)Pid(产...
40、现有订单表orders, 包含数据如下表。若查询既订购了产品P01,又订购了产品P02的顾客编号,可以执行以下()sql语句。(选择两项)
cid (顾客编号) Pid (产品编号)
C01 P01
C01 P02
C02 P01
C03 P02
a) select distinct(cid) from orders o1 where o1.pid in ('p01','p02')
b) select distinct(cid) from orders o1,orders o2 where o1.pid='p01' and o2.pid='p02' and o1.cid=o2.cid
c) select distinct(cid) from orders o1 where pid='p01' and cid in (select cid from orders where pid ='p02')
d) select distinct(cid) from orders o1,orders o2 where o1.pid='p01' and o2.pid='p02'
请问这道题的答案是什么?请问b和d是不是错在语法不通,如果表之间没有关系也可以这样写吗?请大侠帮忙解释以下? 展开
cid (顾客编号) Pid (产品编号)
C01 P01
C01 P02
C02 P01
C03 P02
a) select distinct(cid) from orders o1 where o1.pid in ('p01','p02')
b) select distinct(cid) from orders o1,orders o2 where o1.pid='p01' and o2.pid='p02' and o1.cid=o2.cid
c) select distinct(cid) from orders o1 where pid='p01' and cid in (select cid from orders where pid ='p02')
d) select distinct(cid) from orders o1,orders o2 where o1.pid='p01' and o2.pid='p02'
请问这道题的答案是什么?请问b和d是不是错在语法不通,如果表之间没有关系也可以这样写吗?请大侠帮忙解释以下? 展开
3个回答
展开全部
C是正确答案!表之间必须有关联才能查询!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C 同一个表之间并没有关联,但有两个条件,所以有个AND条件,在同一个表中再加一个查询条件
B 不会同时存在o1.pid='p01' and o2.pid='p02' and o1.cid=o2.cid 这样的条件,因为一条记录只有一个条件
D 一样
B 不会同时存在o1.pid='p01' and o2.pid='p02' and o1.cid=o2.cid 这样的条件,因为一条记录只有一个条件
D 一样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询