如何用临时列聚合不相关的表

How to aggregate unrelated tables with temporary column

这是一块硬饼干。我有两个不相关的 tables - vegetablefruit。我想知道是否可以在一个 MySQL 查询中执行以下所有步骤:

1) SELECT idname 来自 tables.

2) 将临时列值 - tmp_type - 添加到 (1) 中找到的每一行。蔬菜类型table = 1,水果= 2.

3) tables 和 ORDER BY name.

的聚合结果

所以,像这样:

有什么想法吗?我真的很想在数据库级别上执行此操作,而不是在 PHP 控制器中操作两个 table 结果,但我不确定实现目标的最佳方法是什么。

联合查询:

SELECT * FROM (
    SELECT id, name, 2 AS tmp_type
    FROM fruit 

    UNION ALL

    SELECT id, name, 1 AS tmp_type
    FROM vegetable
) AS foo
ORDER BY name

请注意,我正在使用子查询进行排序。您可以直接在联合内进行排序,但语法有点不稳定 - 寻找应该是一个简单示例的内容:http://dev.mysql.com/doc/refman/5.0/en/union.html

注意:子查询不是必需的。这也应该有效:

SELECT id, name, 2 AS tmp_type
FROM fruit 
UNION ALL
SELECT id, name, 1 AS tmp_type
FROM vegetable
ORDER BY name;