mariadb - MariaDB - 如何在其他值列表中的特定值上连接表
问题描述
我有一个存储例程,它接受逗号分隔的字符串,拆分值,并返回这些值的列表。
我现在需要执行一个连接,其中一个值位于返回的值列表中。
所以,我有以下内容,但显然我的逻辑不正确:
SELECT
A.*
, B.*
FROM TableA A
LEFT JOIN TableB B ON
B.ID IN (CALL spSplitString(A.IDs));
那么我如何加入B.ID
结果spSplitString
呢?
解决方案
你不需要在这里存储过程。您可以使用内置函数 FIND_IN_SET:
SELECT
A.*
, B.*
FROM TableA A
LEFT JOIN TableB B ON FIND_IN_SET(B.ID, A.IDs);
推荐阅读
- visual-studio-code - 如何从 Visual Studio Code 关闭(或打开)声音?
- reactjs - 反应 setState 没有正确更新
- c++ - 在 WSL 中使用 Visual Studio 时出现“找不到文件或目录”
- excel - 如何在 Excel 中列出/生成所有可能的组合
- javascript - JS 文件得到一个 net::ERR_ABORTED 404 (Not Found)
- nullpointerexception - JavaFX 切换 fxml 文件:线程中的异常 ... InvocationTargetException
- python - 在 Django 中,我的定义(循环)在其他页面上不起作用
- python - 多处理 - 如何检测进程何时成功启动?
- python - 如何让 discord python bot 对自己的消息做出反应?
- python - 为什么在使用 DataFrameGroupBy.agg 时可以访问传递给聚合函数的系列中的所有数据框列?