내 SQL 쿼리 :SQL 호출 테이블
SELECT
upd.*,
usr.username AS `username`,
usr.profile_picture AS `profile_picture`
,(
SELECT
COUNT(lik.id)
FROM
likes as lik
WHERE
upd.update_id = lik.item_id
AND
lik.uid = 118697835834
AND lik.type=0
) as liked_update,
(
SELECT
COUNT(fav.id)
FROM
favorites as fav
WHERE
upd.update_id = fav.item_id
AND
fav.uid = 118697835834
AND fav.type=0
) as favorited_update
FROM
updates AS upd
LEFT JOIN
users AS usr
ON upd.uid = usr.uid
WHERE
upd.deleted=0
AND
(
upd.uid=118697835834
OR EXISTS
(
SELECT
*
FROM
subscribers AS sub
WHERE
upd.uid = sub.suid
AND sub.uid = 118697835834
)
OR EXISTS
(
SELECT
*
FROM
topics as topic
WHERE
upd.uid = topic.uid
AND sub.uid = 118697835834
)
)
ORDER BY upd.date DESC
LIMIT 0, 15
sub
이 때문에 subquery2에서 호출 질수 있기 때문에 오류를 얻고있다 유일한 subquery1에 ... 내가 어떻게 내가 그것을 호출 할 수 있는지 확인 할 수 있습니다 subquery2에뿐만 아니라? FROM
에 위의 구독자를 LEFT JOIN해야합니까?
Unknown column 'sub.uid' in 'where clause'
예, 테이블을 가입해야합니다. 전체 쿼리를 게시하는 경우 쿼리를 최적화하고 더 짧게 만들고 더 빠르게 실행할 수있는 방법이 더 많습니다. – Travesty3
업데이트 된 질문 – fxuser
내가 얻지 못하는 것 ... 두 번째'존재 '가 주제와 구독자를 확인하면 이전의'존재'와 중복되지 않고 구독자 만 확인합니다. 그 블록은 이미 사실입니까? –