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
值从中选择。