gpt4 book ai didi

mysql - 尝试使用连接对 3 个表进行查询

转载 作者:行者123 更新时间:2023-11-29 10:33:14 24 4
gpt4 key购买 nike

我正在尝试找到一种解决方案,将下一个查询组成为以下 2 个查询:

Table1 {ID, NOM}
Table2 {ID, NOM_RESULT, STEP_ID, STEP_NOM, STEP_TYPE, STEP_PARENT}
Table3 {ID, MES}

第一个查询 ->

(SELECT * FROM Table1 INNER JOIN Table2 ON Table1.ID = 
Table2.NOM_RESULT WHERE Table2.STEP_NOM = 'Y1' AND Table2.STEP_TYPE =
'Y2' AND Table1.NOM = 'X1')

-> 将结果存储在临时表 (Table_temp) 中:

Table_temp {ID, NOM_RESULT, STEP_ID, STEP_NOM, 
STEP_TYPE, STEP_PARENT}

第二个查询 -> 对以下每个 Table_temp.STEP_ID 的临时表进行循环:

SELECT * FROM Table2 INNER JOIN Table3 ON Table3.ID = 
Table2.STEP_PARENT WHERE Table2.STEP_PARENT = Table_temp.STEP_ID++

通过 Table_temp.STEP_ID++ 我的意思是在 Table_temp.STEP_ID 的每一行上循环我使用简单的循环指令(R 语言):

for(i in 1:nrow(Table_temp.STEP_ID)) {...

非常感谢

最佳答案

使用 IN 子句并逐步执行此操作。

select * 
from table2 t2
inner join table3 t3 on t3.id = t2.step_parent
where t2.step_parent in
(
select step_id
from table2
where step_nom = 'Y1'
and step_type = 'Y2'
and nom_result in (select id from table1 where nom = 'X1')
);

关于mysql - 尝试使用连接对 3 个表进行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46983132/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com