合并列和子选择列表

问题描述 投票:-3回答:1

我的查询看起来像:

SELECT col1, col2,
    (SELECT col3, col4 FROM Table2)
FROM Table1

想要的结果是:

col1 | col2 | col3 | col4
-------------------------
ABC  | DEF  | GHI  | JKL
...  | ...  | ...  | ...

但我收到一个错误:

当未使用EXISTS引入子查询时,只能在选择列表中指定一个表达式。

如何合并列表和当前行?

sql sql-server
1个回答
1
投票

你可能想要这样的东西:

SELECT col1, 
       col2,
       (SELECT col3 FROM Table2 as t2 WHERE t2.id = t1.id) as col3,
       (SELECT col4 FROM Table2 as t2 WHERE t2.id = t1.id) as col4
FROM Table1 as t1

甚至更好:

SELECT t1.col1, 
       t1.col2,
       t2.col3,
       t2.col4
FROM Table1 as t1
JOIN Table2 as t2
  ON t1.id = t2.id

如果您没有要加入两个表的字段,那么:

SELECT t1.col1, 
       t1.col2,
       t2.col3,
       t2.col4
FROM Table1 as t1
CROSS JOIN Table2 as t2
© www.soinside.com 2019 - 2024. All rights reserved.