0

我有3个这样的表:

Table 1              Table 3                        Table 2
============        =======================        ==============
 Name -> ID         Table 1 ID -> Table 2 ID         Name -> ID

"Name1" -> 1             1  ->    1                "object1" -> 1
"Name2" -> 2             1  ->    2                "object2" -> 2
"Name3" -> 3             1  ->    3                "object3" -> 3
"Name4" -> 4             2  ->    2                "object4" -> 4
"Name5" -> 5             3  ->    4                "object5" -> 5

我需要编写一个存储过程来了解表 1 中的哪些元素恰好包含表 2 中给定的 ID。

例如查找包含 1、2 和 3 的名称。结果将是 ID 1 -> 名称 1。

并且要查找的项目可以是 N 个元素。

谁能帮我解决这个问题?

我试过这样的事情:

SET @myArrayOfValue = '2,5,2,23,6,';

WHILE (LOCATE(',', @myArrayOfValue) > 0)
DO
SET @value = ELT(1, @myArrayOfValue);
    SET @STR = SUBSTRING(@myArrayOfValue, 1, LOCATE(',',@myArrayOfValue)-1);
    SET @myArrayOfValue = SUBSTRING(@myArrayOfValue, LOCATE(',', @myArrayOfValue) + 1);

    INSERT INTO `TemporaryTable` VALUES(@STR);
END WHILE;

我想创建一个临时表并比较要搜索的表中的哪些值,但在 LOCATE() 上出现错误。另外我认为每次都创建一个临时表是错误的。

4

0 回答 0