我使用两个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 * FROM `t1` WHERE date = DATE(NOW())
SELECT * FROM `t2` WHERE date = DATE(NOW())
提前感谢您的帮助。
正在为关系创建虚拟ID。但这不是推荐的方法。
SELECT col1, col2, col3, col4 FROM
(SELECT t1.*, (@t1VID := @t1VID + 1) t1VID FROM t1 , (SELECT @t1VID := 0) d) e
JOIN (SELECT t2.*, (@t2VID := @t2VID + 1) t2VID FROM t2, (SELECT @t2VID := 0) a ) b ON t1VID = t2VID
JOIN (SELECT @t1VID := 0) c ;
理想的解决方案是在表之间添加适当的关系。如果没有,最好单独查询,并在应用层进行必要的连接
试试这个
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
请注意,顺序是不保证的,要做到这一点,请在每个< code>FROM t1和< code>FROM t2子查询的末尾添加< code>ORDER BY子句,基本上我们是通过row_number连接的,因为MySQL没有ROW_ID、ROW_NUM(类似于mssql、oracle、postgres ),我们使用了会话变量
问题内容: 我有三个SQL选择,需要将它们的结果加在一起。这三个中的两个使用相当复杂的联接。 我需要的是所有三个值的总和。 。无论如何,是否可以在单个语句中执行此操作? 问题答案: 你可以的。 请勿使用,因为它会忽略重复的值(会导致)。
我有两个针对同一个表的select查询,这两个查询在select部分中都只包含一个< code>sum(),但是在< code>where子句中有所不同。我需要做的是对两个查询的结果求和。 查询示例: 我需要的是像这样的东西 其中选择和,如我的示例查询中所示。 我试着回答这个问题,但没能成功。我还尝试用替换字段,但这不起作用,因为不允许在中使用
问题内容: 我需要根据其他几个表中的某些匹配值从一个表中选择结果。我有以下表格: 我需要返回每个团队的所有教练和球员的姓名。我只使用过内部联接,似乎无法在此处使用那些内部联接,所以知道如何执行此操作吗? 问题答案: 这将为您提供教练: 这将为您提供球员: 因此,非优雅,简单的答案就是将所有内容与一起扔掉。
我有两张桌子 客户(ID,First_Name,Last_Name,地址); 订单(ID,Product_Name,价格,Order_Date日期,Customer_ID,金额); 我必须选择客户的姓氏以及他们的订单数量。 select请求的输出必须是
有一个表格,其中包含一些答案。一个答案是true(字段tf=1),几个是false(字段tf=0)。如何选择1个真答案和N个假随机答案?结果必须是随机顺序的。这是我的例子,它的工作原理,但真正的答案总是在第一行:
我需要连接来自两个不同表的数据,如下所示。仅使用一个sql查询就可以做到这一点吗?如果“key”和“name”在两个表上,那么它们是相同的。表1中的“状态”始终为“-”,表2中的“T”。此外,两个表上的“名称”和“comp”都匹配(例如:Name3-C和Name4-B)<我尝试过“联合”和“加入”,但还没有解决办法! 表1 表2 结果应该是。。。 提前谢谢!