合并 2 个表的数据,以便遵循明确的顺序
Merging the Data of 2 Tables such that a definite sequence is followed
我有 2 MySQL 个表
第一个表
|Name | Value |
----------------------------
|Martin | Yes |
|Joseph | Yes |
|Joseph | Yes |
|Jack | No |
secondTable
|Name | Value |
---------------------------------------
|Joseph Desouza | Yes |
|Joseph Desouza | Yes |
"firstTable"的规格是否包含所有类型的记录
"secondTable" 的规范是它只包含 "Joseph Dezouza"
的记录
现在,我怎样才能通过 MySql 查询得到最终结果数组,这样我得到如下合并结果,这样 Joseph 的列表应该首先出现,然后应该开始 Joseph 的列表德索萨
|Name | Value |
----------------------------
|Martin | Yes |
|Joseph | Yes |
|Joseph | Yes |
|Joseph Desouza | Yes |
|Joseph Desouza | Yes |
|Jack | No |
我唯一理解的是,我可以使用 Union 获得它,但不知道如何获得正确的序列。
使用以下内容:
SELECT * FROM
(SELECT * FROM firstTable
UNION ALL
SELECT * FROM secondTable) a
ORDER BY Name DESC;
给出这个命令的是:
Name value
-------------------
Martin Yes
Joseph Desouza Yes
Joseph Desouza Yes
Joseph Yes
Joseph Yes
Jack No
或者您可以指定想要的顺序(在这种情况下您应该已经知道这些值了!!)
SELECT * FROM
(SELECT * FROM firstTable
UNION ALL
SELECT * FROM secondTable) a
ORDER BY FIELD(Name, "Martin", "Joseph", "Joseph Desouza", "Jack");
这将给出:
Name value
-------------------
Martin Yes
Joseph Yes
Joseph Yes
Joseph Desouza Yes
Joseph Desouza Yes
Jack No
如果 FIELD
中没有包含某些值,它们将默认按 ASC 顺序列在第一位!!
两个表应该有相同的字段:
(SELECT * FROM firstTable
UNION
SELECT * FROM secondTable)
ORDER BY Name DESC
通过使用 UNION 我们无法显示所有值,因为 UNION 不允许重复值。所以使用 UNION ALL 获取所有数据
我有 2 MySQL 个表
第一个表
|Name | Value |
----------------------------
|Martin | Yes |
|Joseph | Yes |
|Joseph | Yes |
|Jack | No |
secondTable
|Name | Value |
---------------------------------------
|Joseph Desouza | Yes |
|Joseph Desouza | Yes |
"firstTable"的规格是否包含所有类型的记录 "secondTable" 的规范是它只包含 "Joseph Dezouza"
的记录现在,我怎样才能通过 MySql 查询得到最终结果数组,这样我得到如下合并结果,这样 Joseph 的列表应该首先出现,然后应该开始 Joseph 的列表德索萨
|Name | Value |
----------------------------
|Martin | Yes |
|Joseph | Yes |
|Joseph | Yes |
|Joseph Desouza | Yes |
|Joseph Desouza | Yes |
|Jack | No |
我唯一理解的是,我可以使用 Union 获得它,但不知道如何获得正确的序列。
使用以下内容:
SELECT * FROM
(SELECT * FROM firstTable
UNION ALL
SELECT * FROM secondTable) a
ORDER BY Name DESC;
给出这个命令的是:
Name value
-------------------
Martin Yes
Joseph Desouza Yes
Joseph Desouza Yes
Joseph Yes
Joseph Yes
Jack No
或者您可以指定想要的顺序(在这种情况下您应该已经知道这些值了!!)
SELECT * FROM
(SELECT * FROM firstTable
UNION ALL
SELECT * FROM secondTable) a
ORDER BY FIELD(Name, "Martin", "Joseph", "Joseph Desouza", "Jack");
这将给出:
Name value
-------------------
Martin Yes
Joseph Yes
Joseph Yes
Joseph Desouza Yes
Joseph Desouza Yes
Jack No
如果 FIELD
中没有包含某些值,它们将默认按 ASC 顺序列在第一位!!
两个表应该有相同的字段:
(SELECT * FROM firstTable
UNION
SELECT * FROM secondTable)
ORDER BY Name DESC
通过使用 UNION 我们无法显示所有值,因为 UNION 不允许重复值。所以使用 UNION ALL 获取所有数据