#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