2015-06-01 7 views
0

У меня есть 2 таблицы, как показано нижеВыберите 2 Время записи из одной таблицы

PostList: post_id(PK,Identity) 

LikeList: like_id(PK,Identity), post_id(FK) 

Каждая запись в записи в LikeList, любима.

Эта задача, как пост на FaceBook

Я передаю 2 значения из .cs, когда DataList Binding Какой бы post_id и текущий идентификатор пользователя (mid)

  1. Граф каждый пост, как.
  2. если текущий пользователь настроек уже понравился, а затем изменить текст кнопки В отличие от

создать запрос типа,

SELECT mid 
,(SELECT COUNT(post_id) FROM LikeList WHERE [email protected]_post_id) as like_count 
FROM LikeList WHERE ([email protected]_post_id AND [email protected]_mid) 
GROUP BY mid 

Я получил post_id количество, но ниже в случае, если past post_id=27 и user/mid=2 то, очевидно, мы не нашли запись.

Что я хочу: проверить, нравится ли столбец, проверить, нравится ли пользователю этот пост или нет. (? Как я проверить счет и текущего пользователя, как или нет)

Таблица данных:

PostList

post_id fid mid post_img   post_msg      post_time 

1  1  1  Tulips.jpg  this post from user1.   2015-05-26 
3  3  2  Lighthouse.jpg this post from user2.   2015-05-26 
5  1002 3  road1.jpg  this post from user3.   2015-05-26 
6  3  2  map1.jpg   this 2 post from user2.  2015-05-27 
7  1  1      This is text Post From User1 2015-05-27 
26  1  1  globe.jpg          2015-05-28 
27  1003 5  Gujarat.jpg  this post from user5, again. 2015-05-29 
30  3  2  Location2.jpg post from user2    2015-05-29 

LikeList

like_id post_id mid like_status like_time 
1  27   1 1   2015-05-29 
2  30   1 1   2015-05-29 
3  6   1 1   2015-05-29 
4  30   2 1   2015-05-29 
9  6   2 1   2015-05-29 

Что будет: Когда пользователь онлайн: mid = 1

POST_ID: 30 Понравилось 2 раза (на сайте пользователя, как тоже)

Когда пользователь онлайн: середина = 2

post_id: 27 Понравилось 1 раз (онлайн пользователь не нравится)

ответ

1
SELECT 
    post_id, 
    COUNT(*) AS LikeCount, 
    MAX(CASE mid WHEN @sp_mid THEN 1 ELSE 0 END) AS UserLiked -- 0 for No; 1 for Yes 
FROM LikeList 
WHERE 1 = 1 
    AND post_id = @sp_post_id -- You can comment this line for viewing all post 
    AND like_status = 1 
GROUP BY post_id 
+0

OK , как ожидается, SELECT post_id, COUNT (*) AS LikeCount, MAX (случай в середине КОГДА @UserID ТОГДА 1 0 КОНЕЦ ИНАЧЕ) кАК UserLiked ОТ LikeList ГДЕ post_id = @ ГРУППА сообщения дан ПО pOST_ID – user3201333

+0

это работа thanx ...., :) – user3201333

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