отображать псевдоним столбца из других таблиц - PullRequest
2 голосов
/ 15 сентября 2009

у меня 2 таблицы tbl1 и tbl2 У tbl1 есть идентификатор пользователя col1 col2 col3 (несколько записей на пользователя) РЕДАКТИРОВАТЬ tbl2 имеет ИД пользователя col4 col5 col6 (одиночная запись на пользователя) На моем исходном посте я также указал col3, что было случайностью.

tbl2 используется для хранения имен пользовательских столбцов для каждого пользователя.

Теперь мне нужно знать, как отобразить имя этого пользовательского столбца в результатах. то есть как я могу сослаться на псевдоним, чтобы получить имя этого пользовательского столбца для каждого пользователя.

ВЫБРАТЬ col1 AS (не знаю, что здесь поставить ...)

Что-то вроде ... col1 AS tbl2.col3, где userid = "testuser" Как я могу сделать это? Может быть, какой-то внешний / внутренний запрос ???

Спасибо

Ответы [ 4 ]

3 голосов
/ 15 сентября 2009

Правильный синтаксис:

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 голос
/ 15 сентября 2009

Сделайте что-то вроде этого:

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;
0 голосов
/ 15 сентября 2009

Это должно быть сделано либо в виде динамического SQL (не идеально), либо на уровне представления (очень предпочтительно).

0 голосов
/ 15 сентября 2009

Присутствует на уровне представления, а не на стороне базы данных:

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 в качестве имен столбцов, как только вы перейдете к отображению записей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...