sql查询问题 希望会的大神帮帮忙

在一个商品表中又各种商品,查询同时买了‘路由器’和‘打印纸’的客户的名称和联系人

你这少给了一个购买纪录表吧
正常逻辑:
select 名称,联系人 from 购买记录表

inner join 商品表 on 商品表.id = 购买记录表.商品id
where 商品表.商品名称 = ‘路由器’ and 商品表.商品名称 = ‘打印纸’

如果按照你的说法:
select 名称,联系人 from 商品表 where 商品名称 = ‘路由器’ and 商品名称 = ‘打印纸’

你要把表格的结构和字段信息发出来才能写啊

select 客户名称列,联系人列 from (select 主键,,客户名称列,联系人列 from 商品表 where 1=1 and 商品名称列=‘打印纸’) 别名 left join 商品表 别名 on 别名。相同列=别名。相同列 where 1=1 and 商品名称列=‘路由器’

取交集,用INTERSECT,
select name,contacts from userGoods ug where ug.goodName="路由器"
INTERSECT
select name,contacts from userGoods ug where ug.goodName="打印纸"

user:客户表 order:订单表 orderdetail:购买明细表

 SELECT
    u.客户名称列,u.联系人列
FROM
    `orderdetail` o1,
    `orderdetail` o2,
    `order`,
    `user` u
where o1.oid = o2.oid and o1.bname = '路由器' and o2.bname = '打印纸' and o1.oid = `order`.id and `order`.uid = u.id ;

数据库查询,一步一步来写 先写出框架 和字段信息 再取用交集试试看。耐心点