我试图弄清楚如何编写查询以查找两个表之间的匹配记录。一个表是一个临时表,其中包含通过导入创建的记录,另一个表是固定的用户帐户摘要表。
固定表:
CREATE TABLE `system`.`hashTable` (
`id` int UNSIGNED NOT NULL AUTO_INCREMENT,
`userID` int,
`userHash` char(64),
PRIMARY KEY (`id`),
CONSTRAINT `acctID` FOREIGN KEY (`userID`)
REFERENCES `system`.`master_accounts` (`accountID`)
ON UPDATE CASCADE ON DELETE CASCADE,
UNIQUE `hash` USING BTREE (`userHash`) comment ''
);
临时表
CREATE TABLE `system`.`TEMP_TBL` (
`id` int NOT NULL,
`compHash` char(64),
PRIMARY KEY (`id`),
INDEX `hash` USING BTREE (`compHash`) comment ''
);
目标是从hashTable.userHash中返回具有来自TEMP_TBL.compHash的匹配记录的用户ID。固定表可以包含数百万行,而临时表最多可以包含2000行。
我可以找到有关如何查找非匹配记录但找不到匹配记录的示例。我敢肯定这很简单,但是我被卡住了。
一个简单的左联接呢?
SELECT id FROM temp_tbl
LEFT JOIN hashTable
ON temp_tbl.comphash=hashTable.userhash
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句