MySQL超级查询

时间:2017-08-17 20:56:51

标签: mysql heidisql

我正在尝试从table_a获取信息并自动应用于table_b,同时将pointsA增加5点B乘以8而pointC乘以10

基本上寻找一个单独的脚本,在PlayerAmmount中选择UNIQUE数字时,仅从类别1中的table_a获取ID(例如,如果类别1中的2个(或更多)ID,则PlayerAmmount为555)列出第一个(在这个例子中也称为ID 5),然后在排序后忽略其余的,它从那些类似的ID中获取ID,然后从同一类别中获取其他ID但具有不同的PlayerAmmounts。

在完成所有操作并获得一些ID的列表(例如5,77,553,23523,53223)之后,它会获取这些ID并将它们放在table_b中,并带有唯一的条目' s以1表示(与正常计数一样)并将这些id放入其自己的条目中(例如1表示来自table_a的ID 5)然后它将基本数字5 8 10添加并自行添加。

例如第1行:

  

entry = 1 ID = 5 pointsA = 5,pointsB = 8,pointsC = 10

然后第2行必须像这里一样添加自己:

  

entry = 2 ID = 77,pointsA = 10,pointsB = 16,pointsC = 20

然后第3行是这样的:

  

entry = 3,ID = 553,pointsA = 15,pointsB = 24,pointsC = 30

等等,因为table_a中的所有ID都输入到table_b

到目前为止,我在这方面的唯一尝试是以下不同的风格,但这是我能想到的。任何人都有更好的工作方式可以工作吗?

INSERT INTO table_b 
    (entry, ID, pointsA, pointsB, pointsC)
VALUES 
    ((SELECT max(entry) FROM table_b C) + 1, 
    (SELECT max(ID) FROM table_a in(SELECT DISTINCT PlayerAmmount FROM table_a WHERE Category=1)), 
    (SELECT max(pointsA) FROM table_b C) + 5, 
    (SELECT max(pointsB) FROM table_b C) + 8, 
    (SELECT max(pointsC) FROM table_b C) + 10;

图片:

表-A

tableA

表-B

tableB

设置

setup

0 个答案:

没有答案