Я настраиваю приложение Chat-Group, используя простую базу данных. Я хочу знать, есть ли способ увидеть людей, которым понравился / не понравился определенный пост, к которому можно прикрепить картинку или видео. Важная информация, которую я хочу знать, - это идентификатор сообщения, сообщение, дата публикации, URL-адрес изображения, которое я хочу опубликовать, URL-адрес видео и идентификатор пользователя, отправляющего указанное сообщение. Я использую левые соединения, чтобы увидеть всю эту информацию, но мне не хватает, если сообщения имеют симпатии или антипатии.
Я уже пытался использовать совокупный счетчик, чтобы увидеть каждую понравившуюся и не понравившуюся запись, но я не знаю, как смешать этот запрос с предыдущей информацией.
Это мой запрос, чтобы увидеть информацию, указанную выше:
select P.post_ID, P.post_msg, P.post_date, F.photo_url,V.video_url, P.user_ID
from ((Post as P left join Photo as F on P.post_ID = F.post_ID ) left join Video as V
on P.post_ID = V.post_ID)
where P.chat_ID = 1
Вот вывод запроса:
![Here is the output of the Query](https://i.stack.imgur.com/fBIqB.jpg)
Вот пример вывода, который я хочу:
![Here is an example of the output I want](https://i.stack.imgur.com/wYXTX.jpg)
Приведенный выше запрос отображает все, что я ищу, за исключением того, что нравится и не нравится каждое сообщение Можно ли как-нибудь увидеть, как эта информация смешивается с тем, что я хочу?
Вот структура базы данных:
create table Login(login_ID serial primary key, login_Date DATE NOT NULL DEFAULT CURRENT_DATE, user_name varchar(20) NOT NULL);
create table Users(user_ID serial primary key, user_name varchar(20) NOT NULL, user_password varchar(20) NOT NULL);
create table Contact_List(contactlist_ID serial primary key, user_name varchar(20) NOT NULL,user_ID integer references Users(user_ID) on delete cascade);
create table Person(person_ID serial primary key, person_name varchar(20) NOT NULL, person_lastname varchar(30) NOT NULL, person_phone varchar(12), person_email varchar(50) NOT NULL, user_ID INTEGER references Users(user_ID) on delete cascade);
create table Admin(admin_ID serial primary key, user_ID INTEGER references Users(user_ID) on delete cascade);
create table Chat_Group(chat_ID serial primary key, chat_name varchar(50) NOT NULL, admin_Id INTEGER references Admin(admin_ID) on delete cascade);
create table Group_List(user_ID INTEGER references Users(user_ID) on delete cascade, chat_ID integer references Chatgroup(chat_id) on delete cascade, primary key(user_id, chat_id));
create table Post(post_ID serial primary key, post_msg varchar(280), post_date DATE NOT NULL DEFAULT CURRENT_DATE, user_ID INTEGER references Users(user_ID) on delete cascade, chat_ID INTEGER references Chatgroup(chat_ID) on delete cascade);
create table Video(video_ID serial primary key, video_url varchar(280) NOT NULL, post_ID INTEGER references Post(post_ID) on delete cascade);
create table Photo(photo_ID serial primary key, photo_url varchar(280) NOT NULL, post_ID INTEGER references Post(post_ID) on delete cascade);
create table Reply(reply_ID serial primary key, reply_msg varchar(280) NOT NULL, reply_Date DATE NOT NULL DEFAULT CURRENT_DATE, post_ID INTEGER references Post(post_ID) on delete cascade, user_ID INTEGER references Users(user_ID) on delete cascade);
create table HashTag(hashtag_ID serial primary key, hashtag_msg varchar(200) NOT NULL,post_ID INTEGER references Post(post_ID) on delete cascade NOT NULL, user_ID INTEGER references Users(user_ID) on delete cascade);
create table Reaction(reaction_ID serial primary key,reaction_date DATE NOT NULL DEFAULT CURRENT_DATE, reaction_like BOOLEAN, reaction_dislike BOOLEAN, post_ID INTEGER references Post(post_ID) on delete cascade, user_ID INTEGER references users(user_ID) on delete cascade);
create table React_to(reaction_ID INTEGER references Reaction(reaction_ID) on delete cascade, reply_ID INTEGER references Reply(reply_ID) on delete cascade, primary key(reaction_ID,reply_ID));
Извините за мой плохой английский, английский не мой основной язык.