首页 > 解决方案 > MariaDB - 如何在其他值列表中的特定值上连接表

问题描述

我有一个存储例程,它接受逗号分隔的字符串,拆分值,并返回这些值的列表。

我现在需要执行一个连接,其中一个值位于返回的值列表中。

所以,我有以下内容,但显然我的逻辑不正确:

SELECT 
    A.* 
  , B.*
FROM TableA A
LEFT JOIN TableB B ON
    B.ID IN (CALL spSplitString(A.IDs));

那么我如何加入B.ID结果spSplitString呢?

标签: mariadb

解决方案


你不需要在这里存储过程。您可以使用内置函数 FIND_IN_SET:

SELECT 
    A.* 
  , B.*
FROM TableA A
LEFT JOIN TableB B ON FIND_IN_SET(B.ID, A.IDs);

MariaDB 小提琴


推荐阅读