我有一个关于mysql的问题,我正在创建一个供应商页面,要求列出所有供应商的详细信息及其产品(随机选择每个供应商的3个产品),所以我们必须加入2个表,一个是供应商,另一个是产品,我可以知道如何在单个mysql语句中呈现它们吗?
id corp_name product_count
---------------------------------------
AD0728 John Smith 187
AD0729 JayJay 1983
Run Code Online (Sandbox Code Playgroud)
pid cid p_name quantity
---------------------------------------
1 AD0728 Body Shampoo 10
2 AD0728 glass 10
3 AD0728 pen 10
4 AD0728 pencil 10
5 AD0728 eraser 10
6 AD0728 speaker 10
7 AD0729 monitor 10
8 AD0729 keyboard 10
9 AD0729 mouse 10
10 AD0729 processor 10
11 AD0729 box 10
12 AD0729 sunglass 10
Run Code Online (Sandbox Code Playgroud)
id corp_name pid p_name quantity
----------------------------------------------------------------
AD0728 John Smith 1 Body Shampoo 10
AD0728 John Smith 2 glass 10
AD0728 John Smith 3 pen 10
AD0729 JayJay 10 processor 10
AD0729 JayJay 11 box 10
AD0729 JayJay 12 sunglass 10
Run Code Online (Sandbox Code Playgroud)
感谢大家.
对于SQL Server 2005或更高版本,您可以使用ORDER BY NEWID()随机顺序,您可以使用ROW_NUMBER以获取您的分区:
WITH CTE AS
(
SELECT
s.id, s.corp_name, p.pid, p.p_name, p.quantity
, RN = ROW_NUMBER() OVER (PARTITION BY s.id ORDER BY NEWID())
FROM suppliers s
INNER JOIN products p ON s.id = p.cid
)
SELECT id, corp_name, pid, p_name, quantity
FROM CTE WHERE RN <= 3
Run Code Online (Sandbox Code Playgroud)
这是小提琴(感谢@MahmoudGamal):http://www.sqlfiddle.com/#!3/a26c6/17/0
| 归档时间: |
|
| 查看次数: |
128 次 |
| 最近记录: |