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

admin2016-07-06  15

问题 设数据库有如下表:
    产品(产品号,产品名,型号,单价)
    顾客(顾客号,姓名)
    购买(顾客号,产品号,购买数量,购买日期)
    若要查询“在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://jikaoti.com/ti/rXk0FFFM
0

最新回复(0)