MySQL查询问题,MYSQL连表查询可以一一对应查到对应的字段,如果有多个字段怎么查出对应的多个字段信息
答案:2 悬赏:20 手机版
解决时间 2021-11-27 13:01
- 提问者网友:做自己de王妃
- 2021-11-26 18:25
MySQL查询问题,MYSQL连表查询可以一一对应查到对应的字段,如果有多个字段怎么查出对应的多个字段信息
最佳答案
- 五星知识达人网友:往事隔山水
- 2021-11-26 18:50
请参见下列MySQL实验:
-- 生成orderproduct表
create table orderproduct(orderid char(11) primary key,productid varchar(255));
-- product表
create table product(productid varchar(10) primary key,productname varchar(50));
-- 向订单表插入数据
insert into orderproduct values
(20161116001,'D0020'),
(20161116035,'E0055'),
(20161101048,'A0035'),
(20161005321,'B0049'),
(20160901515,'C0038'),
(20160814525,'C0038,A0035,E0055'),
(20160714510,'D0020,B0049');
-- 向产品表插入数据
insert into product values
('D0020','立顿牌绿茶'),
('E0055','越南小面包'),
('A0035','珠宝台历'),
('B0049','护手霜'),
('C0038','运动水壶');
select * from orderproduct;
select * from product;
-- 返回第一问的SQL语句
select a.orderid,min(a.productid) as productid,
group_concat(b.productname) as productname
from orderproduct a,product b
where b.productname in ('运动水壶','珠宝台历','越南小面包')
and instr(a.productid,b.productid)>0
group by a.orderid;
-- 返回第二问的SQL语句
select a.orderid,min(a.productid) as productid,
group_concat(b.productname) as productname
from orderproduct a,product b
where b.productname in ('立顿牌绿茶','护手霜')
and instr(a.productid,b.productid)>0
group by a.orderid;
追问您好,我不是研发人员,只是运营,数据库只有只读权限,无法建表追答不需要创建表的,这只是实验来证明我编写语句的正确性。
您将我的最后面的那两条sql语句套上实际的表名和字段名就可以得到结果了
-- 生成orderproduct表
create table orderproduct(orderid char(11) primary key,productid varchar(255));
-- product表
create table product(productid varchar(10) primary key,productname varchar(50));
-- 向订单表插入数据
insert into orderproduct values
(20161116001,'D0020'),
(20161116035,'E0055'),
(20161101048,'A0035'),
(20161005321,'B0049'),
(20160901515,'C0038'),
(20160814525,'C0038,A0035,E0055'),
(20160714510,'D0020,B0049');
-- 向产品表插入数据
insert into product values
('D0020','立顿牌绿茶'),
('E0055','越南小面包'),
('A0035','珠宝台历'),
('B0049','护手霜'),
('C0038','运动水壶');
select * from orderproduct;
select * from product;
-- 返回第一问的SQL语句
select a.orderid,min(a.productid) as productid,
group_concat(b.productname) as productname
from orderproduct a,product b
where b.productname in ('运动水壶','珠宝台历','越南小面包')
and instr(a.productid,b.productid)>0
group by a.orderid;
-- 返回第二问的SQL语句
select a.orderid,min(a.productid) as productid,
group_concat(b.productname) as productname
from orderproduct a,product b
where b.productname in ('立顿牌绿茶','护手霜')
and instr(a.productid,b.productid)>0
group by a.orderid;
追问您好,我不是研发人员,只是运营,数据库只有只读权限,无法建表追答不需要创建表的,这只是实验来证明我编写语句的正确性。
您将我的最后面的那两条sql语句套上实际的表名和字段名就可以得到结果了
全部回答
- 1楼网友:青尢
- 2021-11-26 19:06
先把购买商品代码字段根据‘,’分割split() 。然后再取数据追问请问可以帮我写出语句么?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯