设数据库有如下表: 产品(产品号,产品名,型号,单价) 顾客(顾客号,姓名) 购买(顾客号,产品号,购买数量,购买日期) 若要查询“在2012年以后购买的顾客姓名、产品名、购买数量和购买日期”,正确的SQL语句是( )。

admin2016-08-23  23

问题 设数据库有如下表:
产品(产品号,产品名,型号,单价)
顾客(顾客号,姓名)
购买(顾客号,产品号,购买数量,购买日期)
若要查询“在2012年以后购买的顾客姓名、产品名、购买数量和购买日期”,正确的SQL语句是(     )。

选项 A、SELECT姓名,产品名,购买数量,购买日期;
FROM产品JOIN购买JOIN顾客;
ON购买,顾客号=顾客.顾客号ON产品.产品号=购买,产品号;
WHERE YEAR(购买日期)>2012
B、SELECT姓名,产品名,购买数量,购买日期;
FROM产品JOIN购买JOIN顾客:
WHERE产品.产品号=购买.产品号AND购买,顾客号=顾客.顾客号;
AND YEAR(购买日期)>2012
C、SELECT姓名,产品名,购买数量,购买日期;
FROM产品JOIN购买JOIN顾客;
ON购买,顾客号=顾客.顾客号AND产品.产品号=购买.产品号;
WHERE YEAR(购买日期)>2012
D、SELECT姓名,产品名,购买数量,购买日期;
FROM产品,购买,顾客;
WHERE YEAR(购买日期)>2012

答案A

解析 超连接查询用ON指定连接条件,故B选项不正确。如果使用JOIN连接多个表时,两表间的连接条件都要在ON中给出,而不能使用AND给出连接条件,故选项C不正确。选项D在WHERE短语中,没有将三个表连接起来,故是错误选项。JOIN连接格式在连接多个表时的书写方法要特别注意,在这种格式中JOIN的顺序和ON的顺序是很重要的,JOIN的顺序要和ON的顺序(相应的连接条件)正好相反。故答案为A。
转载请注明原文地址:https://kaotiyun.com/show/YnIp777K
0

最新回复(0)