检查另一个表MySql

时间:2017-04-18 19:15:05

标签: mysql

我在MySql数据库中有两个表。在 TableA 中,我保留有关今天发布的产品及其所属群组的信息(如果它们属于一个),在 TableB 中我会检查所有产品的清单如果他们在其中一个小组中,应该发出。

    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应该属于哪个组,所以如果它在tableB中的那个组中那么它就可以了。如果没有,请将其带回记录集。

我确信这是一个简单的方法,我无法弄明白。

非常感谢任何帮助。

感谢

大卫

1 个答案:

答案 0 :(得分:0)

首先,Table 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
;