我在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
我基本上需要在MySql中执行此操作: 根据表B检查所发出的产品是否正确。 在表A中它告诉你ProductNumber应该属于哪个组,所以如果它在tableB中的那个组中那么它就可以了。如果没有,请将其带回记录集。
我确信这是一个简单的方法,我无法弄明白。
非常感谢任何帮助。
感谢
大卫
答案 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
;