我有2个表tbl1和tbl2 tbl1有userid col1 col2 col3(每个用户多条记录) 编辑tbl2有userid col4 col5 col6(每个用户一条记录) 在我原来的帖子中,我在这里列出了col3,这也是偶然的。
tbl2用于存储每个用户的自定义列名。
现在我需要知道如何在结果上显示此自定义列名称。 即如何引用别名来为每个用户提取此自定义列名称。
选择 col1 AS(不知道该放什么......)
类似于... col1 AS tbl2.col3其中userid =“testuser” 我怎么能做到这一点? 也许某些外部/内部查询???
由于
答案 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'
然后,在应用程序方面,只需使用col4
,col5
和col6
作为列名称即可显示记录。
答案 3 :(得分:0)
这必须以动态SQL(不理想)或在表示层(非常优选)来完成。