• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php中这个的mysql语句怎么写?

php 搞代码 3年前 (2022-01-24) 30次浏览 已收录 0个评论
文章目录[隐藏]

<body>

订单表:order

订单商品表:order_goods

也就是order_goods里存放着order里每个订单里的所有商品信息;
我需要找出符合条件的订单里有哪些商品怎么来写?
如:我要查找订单表内order_no等于20160804164336873986的订单,并且order与order_goods里所有字段都列出来。

回复内容:

<body>

订单表:order

订单商品表:order_goods

也就是order_goods里存放着order里每个订单里的所有商品信息;
我需要找出符合条件的订单里有哪些商品怎么来写?
如:我要查找订单表内order_no等于20160804164336873986的订单,并且order与order_goods里所有字段都列出来。

order_goods对于一个order_id有多个记录因此以order_goods左连order查询,连接查询语句执行效率不高得优化下

<code>SELECT * FROM order_goods og LEFT JOIN  order o ON o.id=og.order_id</code>

<code>SELECT * FROM order a JOIN IN order_goods b ON a.id=b.order_id WHERE a.order_no='20160804164336873986'大概是这样,不知道写错没有</code>

一对多,关联模型

看了楼上几位的回答,应该可以满足题主的要求了。对于有强迫症的我,我必须要说一下,题主查询的时候一定不要用*号,字段有多少就都写出来,字段名一样的重命名。

建议不要用join了,拆分成两个查询;另外尽量不要用SELECT *

我也有点强迫症了,最近一直接触索引,一看到mysql就想到索引,我想问下要查询的条件字段创建索引了吗?
还有看到上面的回答,先查询出order表中的数据,再用循环去查询每个的编号id对应的order_goods表中的数据,这样分开查询不会瞬间让mysql卡死(当然了这些是数据量特别大的时候会看出来,数据量少的话用left join我也不说啥)

多表查询。关联

<code>select * from order,order_goodswhere order.id = order_goods.order_idand order.id = '20160804164336873986';select * form order inner join order_goods on order.id = order_goods.order_idwhere order.id = '20160804164336873986';</code>

上面两种写法都是一样的,实现的是2个表连接.
3个表连接的写法也类似,比如查询ID为1的学生的课程和成绩:

<code>SELECT * FROM `student`, `score`, `course`WHERE `student`.`id` = `score`.`student_id` AND `score`.`course_id` = `course`.`id`AND `student`.`id` = 1;SELECT * FROM `student` INNER JOIN `score` ON `score`.`student_id` = `student`.`id` INNER JOIN `course` ON `course`.`id` = `score`.`<p>4本文¥来源gao!%daima.com搞$代*!码$网9</p><pre>搞代gaodaima码

course_id` WHERE `student`.`id` = 1;


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php中这个的mysql语句怎么写?

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址