Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在一个select MySql查询中复制行_Mysql_Sql_Multiple Records - Fatal编程技术网

在一个select MySql查询中复制行

在一个select MySql查询中复制行,mysql,sql,multiple-records,Mysql,Sql,Multiple Records,首先,我想问候所有用户,并为我的英语道歉:。 我是这个论坛的新用户。 我有一个关于MySQL查询的问题。 我有两列的表项,例如itemsID和ItemsQty itemsID ItemsQty 11 2 12 3 13 3 15 5 16 1 我需要选择itemsID,但重复次数与ItemsQty列中指示的次数相同 itemsID ItemsQty 11 2 11 2 12 3 12 3 12 3 13 3 13 3 13 3 15 5 15 5 15 5 15

首先,我想问候所有用户,并为我的英语道歉:。 我是这个论坛的新用户。 我有一个关于MySQL查询的问题。 我有两列的表项,例如itemsID和ItemsQty

itemsID ItemsQty
11  2
12  3
13  3
15  5
16  1
我需要选择itemsID,但重复次数与ItemsQty列中指示的次数相同

itemsID ItemsQty
11  2
11  2
12  3
12  3
12  3
13  3
13  3
13  3
15  5
15  5
15  5
15  5
15  5
16  1
我试着问:

SELECT items.itemsID, items.itemsQty

FROM base.items 

LEFT OUTER JOIN 
(

  SELECT items.itemsQty AS Qty FROM base.items

) AS Numbers ON items.itemsQty <=Numbers.Qty

ORDER BY items.itemsID; 
但它不能正常工作。
提前感谢您的帮助。

尝试此操作可从两列中获得不同的值

SELECT DISTINCT itemsID FROM items
UNION 
SELECT DISTINCT itemsQty FROM items

使用DISTINCT删除重复项。在这里阅读更多-

似乎我对你的问题的理解与其他人不同,所以我希望我能回答你的问题。我基本上会做的是-

为这些更改创建一个新表。 创建一个mysql过程,在原始表中给定一行,然后向新表添加新行- 对原始表中的每一行运行此过程。 SQL答案-选项1

您需要另一个名为numbers的表,其中ItemsQuantity的最大值为1

Table: NUMBERS

1
2
3
4
5
......
max number for ItemsQuantity
然后,下面的SELECT语句将起作用

SELECT ItemsID, ItemsQty
FROM originaltable
JOIN numbers
    ON originaltable.ItemsQty >= numbers.number
ORDER BY ItemsID, number
看到->你应该总是设置这样的小提琴当你可以-它使每个人的生活更轻松

代码回答-选项2

如果没有第二个表,MySQL可能不会“干净地”做你想做的事情,尽管一些聪明人可能知道如何做

用脚本做这件事有什么错

只需从表中运行selectitemsid、ItemsQty

然后,当循环遍历结果时,只需执行伪代码,因为没有指定语言

newArray = array();  // new array

While Rows Returned from database{ //loop all rows returned

    loop number of times in column 'ItemsQty'{

          newArray -> add 'ItemsID'


    }


}//end of while loop
这将为您提供一个新阵列

0 => 11

1 => 11

2 => 12

3 => 12

4 => 12

5 => 13

等等。

您尝试过distinct吗?谢谢您的回答。我不能使用distinct,因为我需要记录的副本,但需要多次指示列itemsQty。我需要打印特殊标签,所以我需要从第一张唱片中打印2个标签,第二条记录中的3个标签等。只需使用脚本即可-我已经回答了下面的问题-如果您指定了一种语言,并且我知道它,我可以调整我的答案,尽管我的伪代码可能会帮助您,如果您以前编程过OK,请使用MySQL,但您需要另一个表才能正常工作。请参阅更新的答案谢谢您的回答。我不能使用distinct,因为我需要记录的副本,但需要多次指示列itemsQty。我需要打印特殊标签,所以我需要让我说,从第一个记录2标签,从第二个记录等3标签。啊,是的。让我想想,谢谢你的回答。我需要打印特殊的标签,所以我需要让我说,从第一个记录2标签,从第二个记录等3个标签。我正在尝试使用水晶报告。打印将经常用于选定的记录,所以我需要最简单的解决方案。非常感谢!第一个选择是伟大的解决方案!
0 => 11

1 => 11

2 => 12

3 => 12

4 => 12

5 => 13