Как мне присоединиться к таблице и изменить имена возвращаемых столбцов?

#sql-server #sql-server-2008

#sql-сервер #sql-server-2008

Вопрос:

У меня есть таблица MS SQL 2008 под названием «fruits», которая выглядит следующим образом:

 id   name           category_id
--   ------------   -----------
 1   Apples                   4
 2   Bananas                  6
 3   Crackers                 6
  

и еще одна таблица под названием «категории» с:

 id   category_name
--   -------------
 4   Foo
 6   Bar
  

Как мне создать запрос, который вернет результаты, похожие:

 fruit_name  fruit_category_name
----------  -------------------
Apples      Foo
Bananas     Bar
Crackers    Bar
  

(Столбцы должны иметь именно это имя, потому что я пытаюсь написать CSV.)

Комментарии:

1. Используйте AS (псевдоним) ключевое слово.

Ответ №1:

 SELECT f.name AS fruit_name, c.category_name AS fruit_category_name
FROM fruits AS f
INNER JOIN categories AS c ON c.id = f.category_id
  

Ответ №2:

Попробуйте это:

 SELECT f.name AS fruit_name, c.category_name AS fruit_category_name
FROM fruits f INNER JOIN categories c
ON f.id = c.id
ORDER BY f.name
  

Ответ №3:

 select name as fruit_name, category_name as fruit_category_name
from fruits
inner join categories on (fruits.category_id = categories.id)
order by fruit_name
  

Ответ №4:

 SELECT fruits.name AS fruit_name, categories.category_name AS fruit_category_name FROM fruits INNER JOIN categories ON (fruits.category_id = categories.category_name)
  

Ответ №5:

Что-то вроде этого?:

 SELECT
    f.name AS fruit_name,
    c.category_name AS fruit_category_name
FROM
    fruits f
JOIN
    categories c ON c.id = f.category_id
ORDER BY
    fruit_name DESC
  

Ответ №6:

вы можете переименовать столбец одним из двух способов:

 SELECT
    ColumnName AS DisplayName
    FROM ...
  

или

 SELECT
    DisplayName = ColumnName
    FROM ...
  

Помните, используйте [ и ] , если вам нужно использовать специальные символы (например, пробел) в отображаемом имени:

 SELECT
    ColumnName AS [Display Name]
    FROM ...
  

или

 SELECT
    [Display Name] = ColumnName
    FROM ...
  

Вы можете выполнить свое объединение следующим образом:

 SELECT 
    f.name AS fruit_name
        ,c.category_name AS fruit_category_name
    FROM Fruits             f
    INNER JOIN Categories   c ON c.id=f.category_id