当前位置: 首页 > 面试题库 >

Mysql中UNION子句的替代

史磊
2023-03-14
问题内容

我有两个表:-表a,表b。

表一

- -ID - -

 1
 2
 3
 4
 5
 7

表b

- -ID - -

 2
 3
 4
 5
 6

我必须在没有 UNION 命令的情况下获得这样的输出:

- - ID - - -

1
2
3
4
5
6
7

注意:我有一个联合的解决方案:-

  **select * from a
      UNION
   select * from b;**

我需要替代方案。 请专家建议。


问题答案:

为此,我们需要另一个具有(至少)2行的表:

CREATE TABLE d
  ( id INT NOT NULL 
  );

INSERT INTO d
  (id)
VALUES
  (0), (1) ;

然后,如果我们只想要一个查询,则可以使用( 这很有趣,请不要在生产中使用 ,这就是为什么要使用 UNION ):

SELECT DISTINCT
    COALESCE(aa.id, bb.id) AS id
FROM 
    d
  LEFT JOIN a AS aa ON d.id = 0
  LEFT JOIN b AS bb ON d.id = 1
WHERE 
    COALESCE(aa.id, bb.id) IS NOT NULL
ORDER BY 
    id ;

SQLfiddle.com上进行了 测试,并针对其他表组合进行了测试:

1行-1行
2行-2行
0行-1行
0行-2行
0行-0行




 类似资料:
  • 问题内容: 给出下表说明: 我有以下3种情况: 情况1完美执行。 情况2无法执行。 情况3也能完美执行。 我的理解是,我们需要确保如果没有对应的联合列,那么我们需要创建一个等效的数据类型哑元。因此,在其他表的相应列列表中具有类似内容的类型。 在情况3中,我们将所有值都指定为null,因此我对此情况有所了解。但是在情况1中,和之间没有数据类型的兼容性,但是它会执行。另一方面,情况2失败。请说清楚。

  • 问题内容: 我想在MySQL查询中通过Union使用order。我正在根据基于距离的表从不同的标准中获取不同类型的记录,该表基于距离在我的网站上进行搜索。第一个选择查询返回与精确位置搜索有关的数据。第二个选择查询返回与距搜索位置5公里以内的距离有关的数据。第三个选择查询返回与距搜索位置5-15公里之内的距离有关的数据。 然后,我使用union合并所有结果,并在带有分页的页面上显示。在适当的标题下,

  • 问题内容: 我有两张桌子。 我这样查询: 我使用UNION是因为如果用户在第一个表和第二个表中都存在,我想为每个用户获取不同的值。 例如: 如果peter在任何一张桌子上,我应该一次获得名称,因为它在两个桌子上都存在。 我仍然从第一张桌子得到一排,从第二张桌子得到第二排。怎么了? 任何帮助表示赞赏。 问题答案: 您的SQL有两个问题: (这是 不是 问题,但应考虑)使用过,而不是表,您创建性能噩梦

  • 问题内容: 我正在使用UNION创建一个搜索界面来搜索多个表。我的问题是,当我尝试搜索单词时,最后一个表中的数据是唯一不断出现的东西。如何在条件适当的地方正确搜索表,应根据其首字母搜索名称。 这是我的代码: 问题答案: 未使用的参数的值为NULL。只有表实际进行搜索。 您必须为查询提供六个参数: 或在所有LIKE中使用相同的参数:

  • 问题内容: 有没有一种方法可以模拟MySQL中的OUTPUT子句,因为我们在SQL Server中有一个OUTPUT子句。 这是我的查询类型 因为我也需要MySQL服务器数据库具有此功能。 请提出实现此功能的最佳方法。 问题答案: 您可以创建触发器并将所需的值插入另一个表。 我不确定,但是-对于MYISAM表,您可以锁定表,选择值并将其插入另一个表,然后更新和解锁表。 编辑: 我已经尝试了一种使用

  • 问题内容: 我正在尝试获取id = 3或id = 9或id = 100的内容…请记住,我可以拥有几百个这些ID。 编写查询的最有效方法是什么? 问题答案: