0

我总是得到“使用的选择语句有不同的列数”错误。

select Sublessee_uname, Sublessee_fname, Sublessee_mname, Sublessee_fname from sublessee
union
select Sublessee_space, Sublessee_product from space_reserve
4

4 回答 4

1

该错误几乎是不言自明的。在第一个SELECT你有4 列,而在第二个你有2 个列。为了使用UNION,两个 s 中的列数SELECT必须匹配。

于 2012-09-23T16:54:57.417 回答
0

根据您的一些评论,在我看来您需要加入而不是它们的联合

通常,要连接两个表,其中一个必须有一列或多列引用另一个。由于您的查询中显示的列似乎不包含在连接条件中使用的正确列,而且我现在不知道您的两个表拥有哪些其他列,我将假设有一个Sublessee_Id列在两个表中。检索所需数据的查询将如下所示:

SELECT
  s.Sublessee_uname,
  s.Sublessee_fname,
  s.Sublessee_mname,
  s.Sublessee_fname,
  r.Sublessee_space,
  r.Sublessee_product
FROM sublessee s
LEFT JOIN space_reserve r  /* or, depending on the requirements,
                              INNER JOIN space_reserve r */
  ON s.Sublessee_Id = r.Sublessee_Id
;

如果你想了解更多关于 JOIN 语法的信息,你可以试试这个手册页:

于 2012-09-23T22:16:04.520 回答
0

在一个union列数需要匹配。尝试

select Sublessee_uname, Sublessee_fname, Sublessee_mname, Sublessee_fname
from sublessee     
union
select Sublessee_space, Sublessee_product, null, null
from space_reserve

简化的小提琴示例

于 2012-09-23T16:56:09.353 回答
0

在联合情况下,查询中的列数应相同供您参考,请检查此 联合

于 2012-09-23T17:04:10.217 回答