为了账号安全,请及时绑定邮箱和手机立即绑定

比较2个MYSQL表以查找匹配数据PHP

比较2个MYSQL表以查找匹配数据PHP

PHP
蛊毒传说 2023-08-19 09:53:03
我的 MYSQL 数据库中有 2 个表,名为Komplektacija和pack_to_lightkomplektacija表保存有关 Item1、Item2、Item3 的信息…… pack_to_light表保存有关哪个 Item 分配给某些设备的信息我需要做的是比较两个表,并在pack_to_light表中找到一个具有与komplektacija表中的“项目”和“序列”匹配的“项目”和“序列”的设备,并更新“pack_to_light”表中的数量。For this particular example. I would need to return: device 1 | Item1 | 12345 | 1我没有太多的 PHP 经验,但我相信我需要在 PHP 中使用 UNION 运算符来查找匹配的数据。我想先了解如何找到匹配的数据,然后担心更新数量。有人能给我提示吗
查看完整描述

2 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

相关的更新就可以了。例如:


update pack_of_light p, Komplektacija k

set p.Quantity = k.Quantity

where k.Serial = p.Serial and k.Item = p.Item

结果:


Device   Item   Serial  Quantity 

-------- ------ ------- -------- 

device1  Item1  12345   1        

device2  Item4  2141    0        

device3  Item6  23241   0        

您可以在DB Fiddle中查看正在运行的示例。


查看完整回答
反对 回复 2023-08-19
?
呼唤远方

TA贡献1856条经验 获得超11个赞

我已经设法从两个表中获取匹配的数据。自从我提到 PHP 以来,我不确定是否可以在这个论坛上询问更多详细信息,但是我决定使用 python 来运行脚本:


def compare_2_tables(conn):

    cur = conn.cursor()

    query = "UPDATE pack_to_light p, komplektacija k SET p.Quantity = k.Quantity WHERE k.Serial = p.Serial and k.Item = p.Item"

    cur.execute(query)

    myConnection.commit()

    for p.Device,p.Quantity in cur.fetchall() :

        print (Device, Quantity)

        string = Device+"/"+Quantity;

        print (string)

        mqttc.publish(string,quantity)

我在这里想做的是提取有关更新了哪个设备以及数量的信息。在前面的示例中,我需要返回 device1 和 1。我需要这两个变量才能向 device1 发送正确的消息。有没有懂 python 知识的人可以指导我完成这个任务?


查看完整回答
反对 回复 2023-08-19
  • 2 回答
  • 0 关注
  • 92 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信