2012-02-14 3 views
-1

정보를 얻기 위해 여러 데이터베이스가 있습니다. 나는 사용자가 어떤 페이지를 보았는지뿐만 아니라 별도의 사용자 DB를 보여 주었다. 내가하려는 것은 사용자가 보지 못했던 모든 페이지를 찾는 것입니다. 이 시점에서! = user_id를 실행하는 것은 여러 페이지를 본 다른 사람들을 보여주기 때문에 작동하지 않습니다.사용자가 보지 못했던 데이터베이스에서 물건을 얻으려고 시도합니다.

그래서 기본적으로 모든 페이지 레코드를 검사하여 사용자가 거기에 있었는지 확인하고 사용자가 본 적이없는 ID를 돌려 보내야합니다.

SELECT video_id, ads_general.id, id_inc, user_id 
FROM ads_general 
LEFT JOIN ads_viewed ON (
ads_viewed.video_id = ads_general.id 
) 

결과 :

video_id id id_inc user_id 
gd27hcsc gd27hcsc 1 1 
k2ku1mkp k2ku1mkp 2 1 
umym9ivq umym9ivq 3 1 
umym9ivq umym9ivq 3 5 
5l66bd0f 5l66bd0f 4 1 
5l66bd0f 5l66bd0f 4 4 
NULL vvw54epx 5 NULL 

이 쿼리는 비디오와 페이지를 조회 한 사용자의 ID를 보여줍니다 나는이 시점에서 어디에 있어요

이입니다.

+0

좋은 커뮤니티 ... –

답변

0

user_id가 아닌 (보이지 않는) video_ids를 선택하려고하십니까?

당신은 가능성이 있으므로, 쿼리에 DISTINCT 추가해야합니다

SELECT DISTINCT video_id 
... 
WHERE User_Id != [user_id] 

이 각각 한 번만 돌아 오는 것을 보장합니다.

+0

맞아. 나는 MYSQL에 깊이 들어가려고 노력하고있다. 그러나 나는 PHP보다 경험이 적다. 그러나 나는 그것이 생각이라고 믿습니다. 주로 동영상 목록이 있으며 사용자가 보지 못했던 동영상을 얻으려고합니다. 나는 무작위로 비디오를 잡아주기 위해 WHILE 루프 등을 사용할 수 있다는 것을 알고 있습니다. 그러나 무작위로 선택할 비디오의 올바른 목록을 가져 오는 것이 내가 할 일입니다. 제안 해 주셔서 감사합니다. 집에 올 때 사용 해보겠습니다. –

관련 문제