繁体   English   中英

MySQL-重命名两个不同表中具有相同名称的选定列

[英]MySQL - Rename selected columns with the same name from two different tables

我正在从两个不同的表中选择同一列,但要使用select as使其具有不同的名称。

(SELECT letter AS letter_1, sex AS sex_1 FROM `celebs_a` LIMIT 1)
UNION
(SELECT letter AS letter_2, sex AS sex_2 FROM `celebs_b` LIMIT 1)

该查询返回以下内容:

letter_1 sex_1
a        1
b        1

但是,我希望它返回以下内容:

letter_1 letter_2 sex_1 sex_2
a        b        1     1

如何使该查询将每个值作为不同的列名返回? 谢谢。

尝试这个:

SELECT 
    (SELECT letter AS letter_1 FROM `celebs_a` LIMIT 1) AS letter_1,
    (SELECT letter AS letter_2 FROM `celebs_b` LIMIT 1) AS letter_2;

更新:

SELECT 
    (SELECT letter ... FROM celebs_a ...) AS letter_1,
    (SELECT letter ... FROM celebs_b ...) AS letter_2,
    (SELECT sex ... FROM celebs_a ...) AS sex_1,
    (SELECT sex ... FROM celebs_b ...) AS sex_2

否则,Barmars的方法会更好(它仅运行2个SELECT查询)

SELECT MAX(letter_1) AS letter_1, MAX(sex_1) AS sex_1,
       MAX(letter_2) AS letter_2, MAX(sex_2) AS sex_2
FROM (
    (SELECT letter AS letter_1, '' AS letter_2, sex AS sex_1, 0 AS sex_2
     FROM celebs_a
     LIMIT 1)
    UNION
    (SELECT '' AS letter_1, letter AS letter_2, 0 AS sex_1, sex AS sex_2
     FROM celebs_b
     LIMIT 1)
) AS derived_table_must_have_an_alias

您可以轻松地将其扩展为从每个表中选择多个列。 只需将0''用作其他表中这些列的占位符即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM