-2

我想每页检索并显示 3 个客户,并显示他们购买的所有商品。目前,我下面的 sql 语句可以检索 3 行结果,但如果他们购买 2 个或更多项目,则它们是同一客户。我知道可以通过多个 sql 查询得到我想要的,但是可以在一个查询中完成吗?如果您对人们通常如何做有想法,请提出建议。谢谢!

SELECT *
FROM customers, item
WHERE customers.customer_id = customers_item.customer_id
LIMIT 0, 3

数据库表:客户
- customer_id
- customer_name

数据库表:项目
- item_id
- item_name

数据库表:Customers_item
- customer_id
- item_id

4

3 回答 3

2

我无法执行语法检查,但解决方案可能如下所示:

select c.*, i.*
from (select * from Customers limit 0, 3) c
join Customer_item ci on c.customer_id = ci.customer_id
join item i on ci.item_id = i.item_id
order by c.customer_name, i.item_name

内部查询将返回需要的客户,其余的将加入所选客户的所有项目。

希望这会帮助你

于 2013-10-27T08:45:37.667 回答
0

这是您需要的:

select * from item where customer_id in (select customers_id from customers)
于 2013-10-27T06:47:18.127 回答
0

提供您尝试获取的示例输出。

select c.*, i.* from Customer c
join
Customer_item ci
on c.customer_id = ci.customer_id
join
item i
on ci.item_id = i.item_id

上面的代码给出了所有客户和他们购买的所有物品。

于 2013-10-27T07:59:06.453 回答