mysql - How to select from two tables in a specific order to associate idT1-idT2
问题描述
I always had this question:
How to select this in SQL (MySQL):
T1
A
3
4
5
6
7
T2
B
45
63
75
82
95
Result
3-45
4-63
5-75
6-82
7-95
As you can see, the idea is to associate both tables in the same order. I tryed this:
SELECT T1.A, T2.B FROM
(SELECT * FROM T1 ORDER BY A DESC) T1,
(SELECT * FROM T2 ORDER BY B DESC) T2
GROUP BY T1.A DESC
I get:
3-45
4-45
5-45
6-45
7-45
No success.
解决方案
DROP TABLE IF EXISTS T1;
CREATE TABLE t1
(A INT NOT NULL PRIMARY KEY);
INSERT INTO t1 VALUES
(3),
(4),
(5),
(6),
(7);
DROP TABLE IF EXISTS T2;
CREATE TABLE t2
(B INT NOT NULL PRIMARY KEY);
INSERT INTO t2 VALUES
(45),(63),(75),(82),(95);
SELECT x.a
, y.b
FROM
( SELECT a, @i:=@i+1 i FROM t1, (SELECT @i:=0) vars ORDER BY a) x
JOIN
( SELECT b, @j:=@j+1 j FROM t2, (SELECT @j:=0) vars ORDER BY b) y
ON y.j = x.i;
+---+----+
| a | b |
+---+----+
| 3 | 45 |
| 4 | 63 |
| 5 | 75 |
| 6 | 82 |
| 7 | 95 |
+---+----+
推荐阅读
- core-data - 带有 Core Data 的 SwiftUI:获取带有谓词崩溃的请求
- angular - 监听 RadListView 的滚动事件
- solr - Solr Repeaters/Slaves 复制是 Master 上的每次提交,而不是 Optimize
- c++ - 有偏随机数生成
- php - CSS 不会链接到我在 Wordpress 中的 page.php 模板,其他一切正常
- html - 如何仅使用 html 和 scss 在元素之前和之后分配不同的背景颜色?
- plot - 几个问题: 1. 打开或关闭枢轴高低功能。2.改变标签偏移距离
- python - 每次迭代后清空列表
- c# - C# Xamarin 在 TabbedPage 中使用 ObservableCollection 形成嵌套列表
- python-3.x - 如何使用 matplotlib 调整大小并显示带有补丁的裁剪图像?