关于SQL中join on 的用法神马的
使用SQL的SELECT语句,根据顾客点菜表和菜单表查询顾客点单价大于等于40元菜的顾客号和菜编号、菜名、单价和数量,结果按菜编号降序排序并存储到名为TABA的表中,将S...
使用SQL的SELECT语句,根据顾客点菜表和菜单表查询顾客点单价大于等于40元菜的顾客号和菜编号、菜名、单价和数量,结果按菜编号降序排序并存储到名为TABA的表中,将SQL的SELECT语句存储到名为TWO.PRG的文件中。表TABA由SELECT语句自动建立。注意:在SQL语句中不要对表取别名。
解题思路:
在two.prg文件中存放
SELECT 顾客号,顾客点菜表.菜编号,菜名,单价,数量;
FROM 顾客点菜表 JOIN 菜单表;
ON 顾客点菜表.菜编号 = 菜单表.菜编号;
WHERE 单价 >= 40;
ORDER BY 顾客点菜表.菜编号 DESC;
INTO TABLE taba
-------------------------------------------------------------------------------------------------
这道题的答案里join on 是什么意思?能不能换成where....and 这样~? 展开
解题思路:
在two.prg文件中存放
SELECT 顾客号,顾客点菜表.菜编号,菜名,单价,数量;
FROM 顾客点菜表 JOIN 菜单表;
ON 顾客点菜表.菜编号 = 菜单表.菜编号;
WHERE 单价 >= 40;
ORDER BY 顾客点菜表.菜编号 DESC;
INTO TABLE taba
-------------------------------------------------------------------------------------------------
这道题的答案里join on 是什么意思?能不能换成where....and 这样~? 展开
4个回答
展开全部
join on 就是表连接.
select * from table1 as t1 join table2 as t2 on(t1.a= t2.b) where t1.c = x order by t1.d desc;
等价于
select * from table 1 as t1 ,table2 as t2 where t1.a = t2.b and t1.c = x order by t1.d desc;
2个SQL语句对于数据库来说是一样的,执行计划都没有区别...
你可以试一下.
select * from table1 as t1 join table2 as t2 on(t1.a= t2.b) where t1.c = x order by t1.d desc;
等价于
select * from table 1 as t1 ,table2 as t2 where t1.a = t2.b and t1.c = x order by t1.d desc;
2个SQL语句对于数据库来说是一样的,执行计划都没有区别...
你可以试一下.
展开全部
SELECT 顾客号,顾客点菜表.菜编号,菜名,单价,数量;
FROM 顾客点菜表 JOIN 菜单表;
ON 顾客点菜表.菜编号 = 菜单表.菜编号;
WHERE 单价 >= 40;
ORDER BY 顾客点菜表.菜编号 DESC;
可以 替换为:
SELECT 顾客号,顾客点菜表.菜编号,菜名,单价,数量
FROM 顾客点菜表, 菜单表
WHERE
顾客点菜表.菜编号 = 菜单表.菜编号
AND 单价 >= 40
ORDER BY 顾客点菜表.菜编号 DESC
关于 JOIN 的具体例子, 可参考:
INNER / LEFT / RIGHT / CROSS / FULL JOIN
http://hi.baidu.com/wangzhiqing999/blog/item/bc62b83cc2cb153eb9998fe2.html
FROM 顾客点菜表 JOIN 菜单表;
ON 顾客点菜表.菜编号 = 菜单表.菜编号;
WHERE 单价 >= 40;
ORDER BY 顾客点菜表.菜编号 DESC;
可以 替换为:
SELECT 顾客号,顾客点菜表.菜编号,菜名,单价,数量
FROM 顾客点菜表, 菜单表
WHERE
顾客点菜表.菜编号 = 菜单表.菜编号
AND 单价 >= 40
ORDER BY 顾客点菜表.菜编号 DESC
关于 JOIN 的具体例子, 可参考:
INNER / LEFT / RIGHT / CROSS / FULL JOIN
http://hi.baidu.com/wangzhiqing999/blog/item/bc62b83cc2cb153eb9998fe2.html
追问
但是为什么出来的表格不一样?用where出来的只有几行~但是join on出来的却还要用滚轮翻页
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SELECT 顾客号,顾客点菜表.菜编号,菜名,单价,数量
FROM 顾客点菜表 and 菜单表 where 顾客点菜表.菜编号 = 菜单表.菜编号
and 单价 >=40 and 1=1 ORDER BY 顾客点菜表.菜编号 DESC;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
join on 相当于 inner join on 都是内连接 也等同于where 关联条件
也就是你问题的答案是YES!
也就是你问题的答案是YES!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询