MySQL-如何使用多个ROW输出进行SELECT?

时间:2018-12-19 12:35:00

标签: mysql select

我有一个Address_table字段:

ADDRESS 
PARCELS

我需要为每个PARCEL准备打印标签,并带有计数标签“ x from y”

ADDRESS = John, PARCELS = 3

如何使用此结果(地址,订单,订单)进行选择:

John, 1, 3
John, 2, 3
John, 3, 3

更多说明:我需要打印地址标签。对于每个地址,可以有更多标签(包裹),这是可变值。我需要知道并打印每个标签从5到1的顺序,从5到2的顺序,从5到3的顺序打印...

table address:
    john
    frank
    bob

table parcels:
    3
    2
    5

我需要这个SELECT结果:

john 1 3
john 2 3
john 3 3
frank 1 2
frank 2 2
bob 1 5
bob 2 5
bob 3 5
bob 4 5
bob 5 5

2 个答案:

答案 0 :(得分:0)

尝试一下:

SELECT a.ADDRESS, b.ORDER, a.PARCELS
FROM Address_table a
INNER JOIN
(SELECT 1 AS `ORDER` UNION ALL SELECT 2 UNION ALL SELECT 3) b
ON 1=1

编辑: 您可以为1到最大PARCELS之间的数字创建其他表 例子:

CREATE TABLE Dummy_number_table (dummy_number INT(11) PRIMARY KEY)
INSERT INTO Dummy_number_table VALUES(1),(2),(3),(4),(5)

然后您可以将您的address_table与dummy_number_table一起加入

SELECT a.ADDRESS, b.ORDER, a.PARCELS
FROM Address_table a
INNER JOIN
Dummy_number_table b
ON b.Dummy_number<=a.PARCELS
ORDER BY a.ADDRESS

答案 1 :(得分:0)

更多说明:我需要打印地址标签。对于每个地址,可以有更多标签(包裹),这是可变值。我需要知道并打印每个标签从5到1的顺序,从5到2的顺序,从5到3的顺序打印...

表地址:

约翰

坦白

鲍勃

桌子包裹:

3

2

5

我需要这个SELECT结果:

约翰1 3

约翰2 3

约翰3 3

坦率1 2

坦率2 2

鲍勃1 5

鲍勃2 5

鲍勃3 5

鲍勃4 5

鲍勃5 5