【发布时间】:2016-02-09 17:49:59
【问题描述】:
我正在使用两个 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())
提前感谢您的帮助。
【问题讨论】:
-
您需要一个关系来“水平”连接这两个表。
Col2和Col4是什么关系(如果有的话)? -
这正是我的棘手点。也许要添加更多细节:两个 SELECT 语句正在对数据进行排序,我想按此顺序组合这两个表。有什么办法不用创建新的标识符?
-
Col4=Col2+ 4 有意义吗?