2012-01-11 4 views
0

У меня есть две таблицы: COMMENTS и USERS. Я сохраняю имя пользователя на таблице COMMENTS, но данные аватара пользователя должны быть взяты из таблицы USERS.Выберите запрос на несколько таблиц несколько раз

SELECT c.id, c.tarih, c.yorum, c.yorumcu, 
(SELECT avatarID FROM USERS WHERE Username=c.yorumcu) AS avatarID 
FROM COMMENTS c WHERE c.id = ? 

знак вопроса в конце заменяется NEWS_ID. (например, news.php?id=5)

Мне удалось закодировать это, но он получает только данные «последнего комментария» из базы данных, но не все из них. (Скажем, 5 человек прокомментировали страницу, он получает только последний (5-й) комментарий, игнорируя остальные.)

Может кто-нибудь мне помочь?

Ps. Йорумку означает «комментатор». COMMENTS.Commenter и USERS.Username - то же самое.

ответ

2

Если ваше предложение WHERE не должно быть «WHERE c.news_id =?», А не «WHERE c.id =?» ? Я предполагаю, что c.id уникален для каждого комментария.

+0

Теперь я чувствую себя глупо. Большое спасибо. Я проверял идентификатор комментария вместо news_id. Схожу с ума ... – Aristona

0

попробовать это:

select c.id, c.tarih, c.yorum, c.yorumcu, avatarID 
FROM COMMENTS,USERS 
where USERS.Username=c.yorumcu and c.id = ? 
+0

Спасибо за ваши усилия. Вышеприведенный запрос работал как шарм после того, как я изменил c.id на c.news_id. – Aristona

0

Я предполагаю, что COMMENTS.id является уникальным идентификатором таблицы КОММЕНТАРИЕВ?

Если это так, это логично, что вы получите только 1 комментарий.

У вас есть идентификатор для НОВОСТИ в таблице КОММЕНТАРИИ? Затем вы должны использовать этот, чтобы получить несколько комментариев.

Смежные вопросы