gpt4 book ai didi

mysql - 检查另一个表 MySql 的记录值

转载 作者:行者123 更新时间:2023-11-29 19:06:15 24 4
gpt4 key购买 nike

我的 MySql 数据库中有两个表。在TableA中,我保存了今天提供的产品的信息以及它们所属的组(如果它们属于一个组),在TableB中,我保存了所有产品的检查 list 如果他们属于其中一组,则应将其分发出去。

    TableA  

id Group ProductNumber
1 Group3 1234
2 Group2 4321
3 Group2 14235
4 Group3 15423
5 Group3 14236
6 Group2 172883
7 Group1 198334
8 Group2 90399209
9 Group1 78877

Table2

我基本上需要在 MySql 中执行此操作:根据表 B 检查所提供的产品是否正确。在表 A 中,它告诉您 ProductNumber 应该属于哪个组,因此如果它属于表 B 中的该组,那么就可以了。如果没有,则将其带回记录集中。

我确信有一个简单的方法可以做到这一点,但我只是无法弄清楚。

非常感谢任何帮助。

谢谢

大卫

最佳答案

首先,您的表 2 架构可能不是正确的数据库架构。我建议你做这样的事情。

CREATE TABLE `TABLE2` (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
product_id INT NOT NULL,
group_id ENUM(1,2,3) NOT NULL,
manufacturer_id INT NOT NULL,
number INT NOT NULL,
...
)

以及 Table2 中第一行的示例

INSERT INTO `TABLE2`  (product_id, group_id, manufacturer_id, product_number)
VALUE (1, 3, 1, 1234);

那么你的工作就很容易完成了。如果您想实时删除Table1中的错误数据,请使用MySQL TRIGGER。如果你想在某个时间删除错误的数据,那么就创建PROCEDURE并在你需要的时候运行。

下面是检查查询Table1中的行是否是正确的数据。

SELECT t1.id, IF(t1.group=t2.group_id, 'Right', 'Wrong') AS 'Check'
FROM `TABLE1` AS t1
LEFT JOIN `TABLE2` AS t2 ON t1.product_number=t2.product_number
;

关于mysql - 检查另一个表 MySql 的记录值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43480452/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com