mysql - 在 on 之后加入 Select 语句

标签 mysql sql oracle

是否可以加入我拆分的字符串的一部分? 我尝试了一些东西:

SELECT param.par_name, 
   PARPAT.pp_pattern, 
   KOM.kom_name 
FROM   inv.inv_parpat PARPAT 
       INNER JOIN inv.inv_param PARAM 
               ON PARPAT.pp_par_id = PARAM.par_id 
       INNER JOIN inv.inv_komponente KOM 
               ON KOM.kom_id = (SELECT Substr(PARPAT.pp_pattern, 
                                       Instr(PARPAT.pp_pattern, ':') + 1 
                                       ) 
                                FROM   inv.inv_parpat) 
WHERE  PARPAT.pp_pattern LIKE '%ATA%'; 

这个声明说: 单行子查询返回多行

最佳答案

为什么要使用子查询?您已经有了这张 table ,为什么不使用它呢? :

SELECT param.PAR_NAME,
       PARPAT.PP_PATTERN,
       KOM.KOM_NAME
  FROM INV.INV_PARPAT PARPAT
       INNER JOIN INV.INV_PARAM PARAM 
        ON PARPAT.PP_PAR_ID = PARAM.PAR_ID
       INNER JOIN INV.INV_KOMPONENTE KOM
        on KOM.KOM_ID = SUBSTR(PARPAT.PP_PATTERN,INSTR(PARPAT.PP_PATTERN, ':')+1)
WHERE PARPAT.PP_PATTERN LIKE '%ATA%';

关于mysql - 在 on 之后加入 Select 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40484910/

相关文章:

PHP date() 没有返回正确的时间?

php - 尝试让 php 准备使用两个不同的表

sql - 如何使用SQL计算表中的列数?

oracle - 如何在oracle上添加主键约束?

mysql - 两个表通过 WHERE 子句条件关联(如果存在或不存在)

mysql - Node JS mysql 用大查询更新

sql - 在 SQL Server 中组合 ORDER BY 和 UNION

mysql - 匹配sql中的多个数字并获取行中所有匹配项的计数

sql - 如果添加 WHERE 子句,LEFT JOIN 不返回任何结果?

oracle - Grails 和 Oracle 出现“列表中表达式的最大数量为 1000”错误