有没有可能把我分开的绳子的一部分连接起来?
我试了些东西:

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%';

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

最佳答案

您需要基于子字符串列将其加入到PARPAT中。如果与子查询联接,则子查询应仅返回一个值(与max()或min()函数类似)。否则,可以将IN子句与子查询一起使用。但请记住,在中使用时会考虑性能问题。对于您的案例,请尝试以下查询:

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 - 启用后加入Select语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40484910/

10-11 05:03