Member 11777378 Ответов: 1

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


мой ответ с
select 
  user.name,
  post.content 

from user
inner join post
  on user.id=post.user_id
inner join post_type
  on post.type_id=post_type.id

where post_type.name='Technology'

order by
  user.name,
  post.date
;

в чем же здесь ошибка?

CHill60

О какой ошибке было сообщено?

jaket-cp

Это что, школьное задание?
Если это так, вы должны узнать, как структурирован оператор select.
https://msdn.microsoft.com/en-GB/library/ms189499.aspx

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

1 Ответов

Рейтинг:
12

CHill60

В вашем запросе нет ничего плохого, это ваша схема, которая виновата.

Вы употребили слишком много сдержанных слов.

Если вы настаиваете на этом, то вы должны окружить слово, имя столбца, имя таблицы квадратными скобками [], т. е.

select [user].[name], post.content
from [user]
inner join post on [user].id=post.[user_id]
inner join post_type on post.[type_id]=post_type.id
where post_type.name='Technology'
order by [user].name,post.[date]

Гораздо лучший подход заключается в том, чтобы избежать использования зарезервированных слов в первую очередь - вот список слов, которых следует избегать[^]


Maciej Los

5ed!