gpt4 book ai didi

mysql - SQL - 水平连接两个选择结果

转载 作者:可可西里 更新时间:2023-11-01 08:10:31 24 4
gpt4 key购买 nike

我正在使用两个 SELECT 语句创建以下两个临时表 t1 和 t2:

+------+------+
| Col1 | Col2 |
+------+------+
| A | 1 |
| B | 2 |
| C | 3 |
+------+------+

+------+------+
| Col3 | Col4 |
+------+------+
| C | 5 |
| D | 6 |
| E | 7 |
+------+------+

这两个 SELECT 语句本质上总是返回相同数量的行。现在我想水平加入/合并这两个结果以获得以下输出表:

+------+------+------+------+
| Col1 | Col2 | Col3 | Col4 |
+------+------+------+------+
| A | 1 | C | 5 |
| B | 2 | D | 6 |
| C | 3 | E | 7 |
+------+------+------+------+

我尝试使用多个 JOIN 语句,但可以想出一个聪明的方法。我还尝试了 UNION 语句,它提供了垂直连接,但没有提供所需的水平连接。

这里有两个简单的 SELECT 语句,可以更好地定位可能的解决方案:

SELECT * FROM `t1` WHERE date = DATE(NOW())

SELECT * FROM `t2` WHERE date = DATE(NOW())

预先感谢您的帮助。

最佳答案

试试这个

SET @row_number_t1:=0;
SET @row_number_t2:=0;

SELECT t1_modif.*, t2_modif.* FROM
(SELECT @row_number_t1:=@row_number_t1+1 AS row_number,
t1.* FROM t1)
t1_modif
JOIN (SELECT @row_number_t2:=@row_number_t2+1 AS row_number,
t2.* FROM t2)
t2_modif ON t2_modif.row_number = t1_modif.row_number

请注意,不能保证顺序,为此,请在每个 FROM t1FROM t2 子查询的末尾添加 ORDER BY 子句,基本上我们通过 row_number 加入,因为 MySQL 没有 ROW_ID、ROW_NUM(类似于 mssql、oracle、postgres)我们使用了 session 变量

关于mysql - SQL - 水平连接两个选择结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35288338/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com