1

两个不同的 select 子句中的不相等列使用了 union 子句。

在 mysql 中,我们应该在使用 UNION 子句的 2 个查询中的 select 子句中定义相同数量的列。

所以,为了实现上述目标,我这样做是这样的:

SELECT col1, col2, col3, col4
FROM table1
{whereclause}
UNION
SELECT c1, c2, NULL, NULL
FROM table2
{whereclause}

但在我的某些地方的申请中没有。第一个选择子句中的列对我来说是未知的,所以不能硬编码'NULL'

一件事是不变的,即在第二个SELECT clause c1, c2中将保持相同的 troughout,但我想'NULL'在 select 子句中追加以匹配 select 子句 1 中相同数量的列。

我怎样才能实现上述目标。

提前致谢。

4

2 回答 2

0

希望,我已经理解你了。

如果您希望从两个表中提取数据,它们不需要具有相同数量的列,但它们确实需要有一些共同点。

通用 sytnax 将是:

SELECT table1.col1, table2.col1 FROM table1 LEFT JOIN table2 ON table1.col3=table2.col3 WHERE {where conditions}

这里重要的是有一个数据链接位 - 通常是两个表共有的用户编号,并且在两个表中意味着相同的东西。

于 2013-06-12T06:47:46.207 回答
0

尝试分配ALIAS给您的 NULL 列的名称

SELECT col1, col2, col3, col4
FROM table1
{whereclause}
UNION
SELECT c1, c2, NULL as c3, NULL as c4
FROM table2
{whereclause}

请记住,数据类型需要匹配每个选择中的同一列。

于 2013-06-12T06:48:33.680 回答