매우 잘 작동하는 쿼리가 있습니다. 그것으로 시작합시다 :SQL의 쿼리에 하위 쿼리 추가
편집 : SQL이 업데이트되었습니다. 모든 행에 0
이 있습니다.
SELECT i.item, i.user_id, u.username,
(COALESCE(r.ratetotal, 0)) AS total,
(COALESCE(c.commtotal, 0)) AS comments,
(COALESCE(r.rateav, '50%')) AS rate,
(COALESCE(x.wasRated, '0')) AS wasRated
FROM items AS i
LEFT JOIN master_cat AS c
ON (c.cat_id = i.cat_id)
LEFT JOIN users AS u
ON u.user_id = i.user_id
LEFT JOIN
(SELECT item_id,
COUNT(item_id) AS ratetotal,
AVG(rating) AS rateav
FROM ratings GROUP BY item_id) AS r
ON r.item_id = i.item_id
LEFT JOIN
(SELECT item_id,
COUNT(item_id) AS commtotal
FROM reviews GROUP BY item_id) AS c
ON c.item_id = i.item_id
LEFT JOIN
(SELECT xu.user_id, ra.item_id, '1' AS wasRated
FROM users AS xu
LEFT JOIN ratings AS ra
ON ra.user_id = xu.user_id
WHERE xu.user_id = '1') AS x
ON x.user_id = u.user_id
AND x.item_id = r.item_id
WHERE c.category = 'Movies'
ORDER by i.item ASC;
나는 당신이 중요 여기에 세 개의 테이블이있다, 기본적으로
AS x
를 볼 경우, 여기에 하나 개 더 기능을 추가해야합니다. items
, reviews
및 ratings
. 맨 위 부분에는 각 항목의 평균 및 합계와 같은 통계를 사용하는 하위 쿼리가 있습니다.
user_id
, item_id
및 rate_id
(ratings
)에 연결된 최종 쿼리가 필요합니다. 최종 결과에서 각 항목 및 통계가 표시되는 곳에서 사용자가 등급을 매기면 하나 이상의 열이 표시되고 간단한 경우 true 또는 false가 필요합니다. 그래서 나는 이런 식으로 뭔가가 필요합니다
SELECT ???
FROM ratings AS r
WHERE r.user_id = '{$user_id}'
(로그인 한 사용자의 user_id
PHP.`에서 전달됩니다)
상위 쿼리 항목의 각 행에?
테이블에 대한 SQL DDL과 일부 SQL INSERT 문을 게시하면 더 많은 응답을 얻을 수 있습니다. –