#sql #self-join
#sql #самосоединение
Вопрос:
Comment:tbl
CommentId PK
CommentEntry
CommentDate
Category
CommentCommentId
BlogEntryId FK
Insert into Comment(CommentId, CommentEntry, CommentDate, Category, CommentCommentId, BlogEntryId)
Values("1","I love shoes","10-3-2011","1","" ,"13"),
("2","I love shoes too","10-4-2011","1","1" ,"13"),
("3","There nice shoes in the mall","2","","13");
ВОПРОС: Создайте для первого комментария, сделанного к данной записи в блоге, любые дальнейшие комментарии, сделанные только к этому первоначальному комментарию. Пользователю должно быть предложено ввести уникальный идентификатор записи в блоге.
ANS ПРЕДПОЛАГАЕТСЯ, ЧТО :
("1","I love shoes","10-3-2011","1","" ,"13"),
("2","I love shoes too","10-4-2011","1","1" ,"13")
Пожалуйста, помогите с sql
Я хочу выполнить самосоединение, чтобы принять [BlogEntryId] и 1-й комментарий к продукту ‘CommentCommentId =»»‘ и все комментарии к этому 1-му комментарию.
пожалуйста, помогите с sql:)
Комментарии:
1. Это совсем не ясно. Можете ли вы попробовать перефразировать некоторые вещи?
2. нет такого понятия, как «внутреннее левое соединение», self или иное…
3. я попробовал SQL ЗАПРОС: ВЫБЕРИТЕ commentId, CommentEntry, CommentDate, адрес электронной почты ИЗ комментария, ГДЕ BlogEntryId = [?Запись в блоге] И CommentCommentId = (ВЫБЕРИТЕ commentId ИЗ комментария, ГДЕ CommentDate = (ВЫБЕРИТЕ min (CommentDate) из комментария)); Но он возвращает только: («2», «Я тоже люблю обувь»,»10-4-2011″,»1″,»1″ ,»13″)
Ответ №1:
Просто добавляю немного к вашему исходному запросу:
SELECT *
FROM Comment
WHERE BlogEntryId = [?Blog Entry]
AND (
CommentId = (SELECT CommentId FROM Comment WHERE CommentDate = (SELECT min(CommentDate) from Comment))
OR
CommentCommentId = (SELECT CommentId FROM Comment WHERE CommentDate = (SELECT min(CommentDate) from Comment))
)
Ответ №2:
Я думаю, вы хотите что-то вроде этого:
select *
from comment c
join comment subc on c.commentcommentid = subc.commentid
where c.commentid = @inputID
Это самосоединение.
Я думаю, что ответ на вопрос о домашнем задании просто такой:
select *
from comment
where commentcommentid = @inputid