关于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 这样~?
展开
 我来答
达斯小锴
推荐于2018-02-28 · TA获得超过411个赞
知道答主
回答量:98
采纳率:0%
帮助的人:58.5万
展开全部
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语句对于数据库来说是一样的,执行计划都没有区别...
你可以试一下.
wangzhiqing999
2011-08-30 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7048
采纳率:100%
帮助的人:3347万
展开全部
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
追问
但是为什么出来的表格不一样?用where出来的只有几行~但是join on出来的却还要用滚轮翻页
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
luckilyMONKEY
2017-11-01
知道答主
回答量:1
采纳率:0%
帮助的人:938
展开全部

SELECT 顾客号,顾客点菜表.菜编号,菜名,单价,数量
FROM  顾客点菜表 and  菜单表 where  顾客点菜表.菜编号 = 菜单表.菜编号
and  单价 >=40 and 1=1 ORDER BY 顾客点菜表.菜编号 DESC;

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
真灵级存在
2011-08-30 · TA获得超过853个赞
知道小有建树答主
回答量:191
采纳率:0%
帮助的人:172万
展开全部
join on  相当于 inner join on  都是内连接 也等同于where 关联条件
也就是你问题的答案是YES!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式