0
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应该适用于两个表。

4

3 回答 3

5

你有什么理由做那些外部选择*?它们毫无意义,因为它们只是重新选择您已经选择的所有内容。

使用 mysql 联合,这是您对整个结果集进行排序的方式:

(SELECT case_id, diagnosis_title, ... FROM ...)
UNION
(SELECT image_id, image_title, ... FROM ...)
ORDER BY ...

使用上面的括号,order by 会将两个结果集中的所有记录一起排序,而不是单独对每个单独的查询结果进行排序。

于 2012-08-15T16:36:04.433 回答
1

尝试简单地查询。

    SELECT case_id,diagnosis_title,updated
    FROM tbl_case 
    UNION
    select image_id,image_title,updated
    from tbl_image 
    ORDER BY updated desc
于 2012-08-15T16:39:29.287 回答
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;

显然,这使用临时表而不是联合来实现我认为您所要求的。

于 2012-08-15T16:57:52.933 回答