SELECT *
FROM
(
SELECT case_id,diagnosis_title,updated
FROM tbl_case
order by updated desc
) as table1
UNION
select *
FROM
(
select image_id,image_title,updated
from tbl_image
order by updated desc
) as table2
如何显示混合订单的记录。当前tbl_Case
条记录显示第一部分,tbl_image
记录显示在第二部分。
我想混合输出。 ORDER BY
应适用于两个表格。
答案 0 :(得分:3)
你做任何外部选择*的任何原因?他们是毫无意义的,因为他们只是重新选择你已经选择的一切。
使用mysql联合,这是您订购整个结果集的方式:
(SELECT case_id, diagnosis_title, ... FROM ...)
UNION
(SELECT image_id, image_title, ... FROM ...)
ORDER BY ...
如果将包围放在上面,则order by将两个结果集中的所有记录排序在一起,而不是分别对每个单独查询的结果进行排序。
答案 1 :(得分:1)
尝试简单查询。
SELECT case_id,diagnosis_title,updated
FROM tbl_case
UNION
select image_id,image_title,updated
from tbl_image
ORDER BY updated desc
答案 2 :(得分:0)
你可以这样做,(我只是猜测数据类型)
CREATE TEMPORARY TABLE TempTable
(id int, title varchar(100), updated tinyint(1));
INSERT TempTable
SELECT case_id, diagnosis_title, updated FROM tbl_case ORDER BY updated DESC;
INSERT TempTable
SELECT image_id, image_title, updated FROM tbl_image ORDER BY updated DESC;
SELECT * FROM TempTable;
显然,这使用临时表而不是联合来实现我认为你要求的。