나는이 사용자 범주 버튼을 따른다. 해당 버튼을 클릭하면 해당 레코드가 following_follower_categories에 저장됩니다. 내가 그들의 이름을 가진case와 limit를 사용하여이 mysql 쿼리를 처리하는 방법
테이블 카테고리, following_follower_categories는, 북마크,
1) 책갈피처럼 자신의 분야를 가진 을 user_bookmarks 내 범주에 해당 범주에 대한 자신의 기록을 원하지는 ID 및 기타 세부 사항
을 포함2) user_bookmarks 테이블
user_id, bookmark_id ,
3)
을 following_follower_categories CATEGORY_ID**** 난 다음입니다 누구에 USER_ID (다른 USER_ID) **
follower_user_id (현재 사용자 ID)
follower_category_id (여기서 내 북마크 이동)
category_id (다른 사용자 ca tegory_id) 아이디, cat_name, 내가 cateogory 사람 다음입니다 때 달성되고 싶어 이제
을 USER_ID
4) 카테고리 I 한계 내 해당 카테고리 에 자신의 artilce를 원하고 조건은입니다.
여기에 내가 시도한 mysql 쿼리가 있습니다.
SELECT t.*
FROM (SELECT f.category_id cat_id,
`user_bookmarks`.`id` AS `user_bookmark_id`,
`bookmark_id`,
`user_bookmarks`.`user_id`,
`user_bookmarks`.`category_id`,
`bookmark_website`,
`bookmark_title`,
`bookmark_preview_image`,
`pdf_txt_flag`,
`youtube_video`,
`snapshot_preview_image`,
(CASE
WHEN `user_bookmarks`.`category_id` =
f.follower_category_id
THEN (SELECT *
FROM `user_bookmarks` ub
WHERE ub.category_id= f.follower_category_id)
ELSE 0
END) `mode`,
@r:= CASE
WHEN `user_bookmarks`.`category_id` = @g THEN @r+1
ELSE @r:=1
END `rank`,
@g:=category_id
FROM `user_bookmarks`
LEFT JOIN `following_follower_categories` f
ON f.follower_category_id =`user_bookmarks`.`category_id`
LEFT JOIN `bookmarks`
ON `user_bookmarks`.`bookmark_id` = `bookmarks`.`id`
LEFT JOIN `categories`
ON `user_bookmarks`.`category_id` = `categories`.`id`
JOIN (SELECT @r:=0,@g:=0) t1
WHERE `user_bookmarks`.`category_id` IN (161,
83,
107,
73)
ORDER BY `user_bookmarks`.`created_at` DESC) t
WHERE t.rank <=10
나는 위의 쿼리가 잘못되었다는 것을 알고 있습니다. 아무도 나에게이 일을하는 방법을 알 수 있습니까? 우리는 mysql 자체에서이를 처리 할 수 있는가?
여기 내 기대되는 출력입니다. 내가
테이블에 대한 샘플 데이터와 예상 결과 세트를 제공해주십시오. –
@ NevilleK : 결과 집합을 만드는 데 너무 많은 시간이 걸립니다. – kamalpreet
@NevilleK : 업데이트 질문이 있습니다. – kamalpreet