显示来自其他tbl的列别名

时间:2009-09-15 03:33:36

标签: sql mysql

我有2个表tbl1和tbl2 tbl1有userid col1 col2 col3(每个用户多条记录) 编辑tbl2有userid col4 col5 col6(每个用户一条记录) 在我原来的帖子中,我在这里列出了col3,这也是偶然的。

tbl2用于存储每个用户的自定义列名。

现在我需要知道如何在结果上显示此自定义列名称。 即如何引用别名来为每个用户提取此自定义列名称。

选择 col1 AS(不知道该放什么......)

类似于... col1 AS tbl2.col3其中userid =“testuser” 我怎么能做到这一点? 也许某些外部/内部查询???

由于

4 个答案:

答案 0 :(得分:3)

正确的语法是:

SELECT tbl2.userid, tb2.col3 AS [your name here], tbl1.col1 AS [your name here], ...
FROM tbl2
INNER JOIN tbl1 ON tbl1.userid = tb2.userid
WHERE tbl2.userid = "testuser"

列本身以表名(不是别名)作为前缀。当两个不同的表共享一个列名时,这才是真正必要的,但即使在更简单的情况下,这也不是一个坏习惯。

答案 1 :(得分:1)

做这样的事情:

SELECT tbl1.col1 as tbl1_col1,tbl2.userid as tbl2_usrid, tbl2.col3 as tbl2_usrid_custcol
FROM tbl1,tbl2
WHERE tbl1.userid = tbl2.userid;

答案 2 :(得分:0)

出现在表示层,而不是数据库端:

select
    a.userid,
    col1,
    col2,
    a.col3,
    b.col3 as user_col1,
    b.col4 as user_col2,
    b.col5 as user_col3
from
    tblA a
    inner join tblB b on
        a.userid = b.userid
where
    userid='testuser'

然后,在应用程序方面,只需使用col4col5col6作为列名称即可显示记录。

答案 3 :(得分:0)

这必须以动态SQL(不理想)或在表示层(非常优选)来完成。