老师,这句sql看不太理解

老师,这句sql看不太理解

$sql = "SELECT good.* ,class.class FROM good,class WHERE good.class = class.id AND good.stock>=25
                                            AND good.price<=50 AND good.class=4 ORDER BY good.price ASC LIMIT 6";

这个sql语句的条件中,用的是笛卡尔积查询,然后前面不是查询的good表中的所有字段,加class表中的class字段么,然后显示的时候类别那一栏也是用的{$row['class']},这WHERE中的那个条件使它变成了class中的class了

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,同学查询到的字段是否如下图所示:

http://img1.sycdn.imooc.com//climg/5ee03c0b0968aeae06430041.jpg

如果是,则展示出good表中的全部字段,外加class表中的class字段。如上图所示:最后一个class为class表中的字段。而在PHP中输出的$row['class']是class表中的字段是因他是最后一个class,在有相同的字段,同名字段会覆盖前一字段的值。

祝学习愉快!

  • 慕九州8345213 提问者 #1
    嗯嗯,在cmd中查询就是这样的展示,原来会覆盖啊,理解啦,谢谢老师
    2020-06-10 11:07:14
好帮手慕小尤 2020-06-09 14:04:24

同学你好,整个SQL语句可以理解为:查询good表中所有字段和class表中的class字段,条件为good表中的class字段数据等于class表中的id字段数据,并且good表中的stock字段数据需要大于等于25,并且good表中price字段的数据需要小于等于50,并且good表中class字段值等于4,满足条件之后根据good表中的price字段值进行排序,然后取出排序后的6条数据。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 慕九州8345213 #1
    为什么在cmd中打印的结果和php中输出的结果不一样呢,cmd输出是good表中的所有字段加class表中的class字段,但是php这里输出的时候{$row['class']}却变成了class.class了,是不是mysqli_fetch_array的效果?
    2020-06-09 22:41:03
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
PHP小白零基础入门
  • 参与学习           人
  • 提交作业       626    份
  • 解答问题       4928    个

想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师