SQLite连接两个选择
在此方面的任何帮助都将不胜感激SQLite连接两个选择,sqlite,Sqlite,在此方面的任何帮助都将不胜感激 (SELECT instance_name, st AS t_2, nd AS d_2 FROM search_comparison WHERE instance_path LIKE "%64%" AND nd = '2' ORDER BY instance_name) AS a JOIN (SELECT instance_name, st AS t_4, nd AS d_4 FROM search_comparison WHERE instance_pat
(SELECT instance_name, st AS t_2, nd AS d_2
FROM search_comparison
WHERE instance_path LIKE "%64%" AND nd = '2'
ORDER BY instance_name) AS a
JOIN
(SELECT instance_name, st AS t_4, nd AS d_4
FROM search_comparison
WHERE instance_path LIKE "%Set_64%" AND nd = '4'
ORDER BY instance_name) AS b
ON a.instance_name = b.instance_name
GROUP BY instance_name;
上面的sqlite查询一直在说“(”附近的语法错误,但我无法找出原因。我明确地不想做一个
Union ALL
,因为我试图将t\u 4、d\u 4、t\u 2、d\u 2
作为单独的列,并将instance\u name
作为公共列。此外,我可以保证两个select查询中的列instance\u name
具有完全相同的entries.您是否正在寻找自加入
SELECT
sc1.nstance_name,
sc1.st AS t_2,
sc1.nd AS d_2,
sc2.st AS t_4,
sc2.nd AS d_4
FROM search_comparison sc1
INNER JOIN search_comparison sc2
ON sc1.instance_name = sc2.instance_name
WHERE
sc1.instance_path LIKE '%64%' AND
sf1.nd = '2' AND
sc2.instance_path LIKE '%Set_64%' AND
sc2.nd = '4';
联接的正确语法如下:
SELECT a.instance_name, b.t_4, b.d_4, a.t_2, a.d_2
FROM (
SELECT instance_name, st AS t_2, nd AS d_2
FROM search_comparison
WHERE instance_path LIKE "%64%" AND nd = '2'
) AS a INNER JOIN (
SELECT instance_name, st AS t_4, nd AS d_4
FROM search_comparison
WHERE instance_path LIKE "%Set_64%" AND nd = '4'
) AS b ON a.instance_name = b.instance_name
ORDER BY a.instance_name
ORDER BY子句在末尾只需要一次。您也有一个
GROUP BY
子句,但是您的代码中不清楚要聚合什么。我实际上希望nd=2
和nd=4
以及t\u 2和另一个st作为单独的列,方法是将instance\u name用作这两个的公共列。因此,我试图进行内部联接。有没有办法做到这一点?检查我的u更新的答案,也许你只是想要一个自连接。是的,这正是我想要的。谢谢。我真的可以递归这个语句吗?比如说'nd=6'等等?我不知道这里“递归”的确切含义。在我的脑海里,你可以把自连接放到一个CTE中,然后根据nd
值从中选择。