永发信息网

mysql 多张表联合查询

答案:3  悬赏:40  手机版
解决时间 2021-04-05 04:43
  • 提问者网友:孤山下
  • 2021-04-04 21:14
mysql 多张表联合查询
最佳答案
  • 五星知识达人网友:春色三分
  • 2021-04-04 21:26
select a.商品Id,a.商品名称,b.项目,b.详细描述,c.图片地址

from 主表 a,副表1 b,副表2 c where a.商品Id=b.商品Id and a.商品Id=c.商品Id

这样,你的副表的商品id都和主表的商品id关联追问这样我试过,比如某一商品,在副表1中有2条记录,在副表2中有3记录,那么查询的时候就会有6条记录。
如果是这种情况的话,是不是就能逐行分析了

如果我要限定,一次性查出10个商品,而每个商品在副表1和副表2中的记录都有可能不同,那么在sql语句中又该如何limit呢追答十个商品的意思就是十个商品id吗?你只要查十个商品id的关联属性?追问十个商品(每个商品都有自己的id),一次查出这些商品的全部信息,包括关联的副表1和副表2中的信息追答那就用上边那个就行了吧,要是假如你有100个商品,但你要查其中10个的,才用limit吧追问不好意思我没说清楚,就是你说的这种情况。系统里可能有很多个商品信息,而我一次只取其中的10个,而这种查询方法会使一个商品id展出多条记录,所以不明白如何用limit进行限定追答哦,懂了,那这样
select a.商品Id,a.商品名称,b.项目,b.详细描述,c.图片地址
from 主表 a,副表1 b,副表2 c where a.商品Id=b.商品Id and a.商品Id=c.商品Id

where a.商品Id in (select 商品Id from 主表 limit 0,10)

是这个意思吗?追问呵呵,应该是对的,但我的mysql弹出了这个错误,有点无语,谢谢你了
1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
全部回答
  • 1楼网友:持酒劝斜阳
  • 2021-04-04 21:51
借用楼上的语句,加group by 应该就可以了

select a.商品Id,a.商品名称,b.项目,b.详细描述,c.图片地址
from 主表 a,副表1 b,副表2 c where a.商品Id=b.商品Id and a.商品Id=c.商品Id
group by a.商品Id,a.商品名称,b.项目,b.详细描述,c.图片地址
  • 2楼网友:神的生死簿
  • 2021-04-04 21:35
我来回答吧,多表联合查询:
mysql:
select a.*, b.项目, b.详细描述 , c.图片地址 from
( select * from 主表 limit 10 ) tmp a
inner join 副表1 b on a.商品Id = b.商品Id
inner join 副表2 c on a.商品Id = c.商品Id;
或者
select a.*, b.* , c.*
from
( select * from 主表 limit 10 ) tmp a
inner join 副表1 b on a.商品Id = b.商品Id
inner join 副表2 c on a.商品Id = c.商品Id;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯