2014-05-17 2 views
0

이 쿼리를 생성하여 테이블 타임 라인에서 항목을 선택하고 내 사용자 테이블의 데이터가있는 항목을 풍부하게했습니다. 이제 media.album = '0'인 미디어 테이블에서 media.filename 항목을 선택하고 싶습니다. 이제는 내 쿼리의 결과가 반환되지만 미디어 테이블의 모든 항목이 반환됩니다. 오직 하나. 내 조건을 입력하거나 1을 제한 할 수있는 곳은 어디입니까?한계가있는 3 개의 테이블을 결합하십시오.

SELECT dat, sourceinfo, users.firstname, users.lastname, users.token, users.prof, 
media.filename from timeline 
JOIN users ON users.user_id = timeline.userid2 JOIN media ON users.user_id = 
timeline.userid2 
WHERE (timeline.user_id = '25') and (dat BETWEEN DATE_ADD(NOW(), INTERVAL -1 
DAY) AND NOW()) 

덕분에 많은

답변

1

는 하위 쿼리에 LIMIT 절을 넣습니다.

SELECT dat, sourceinfo, users.firstname, users.lastname, users.token, users.prof, 
     media.filename 
FROM timeline 
JOIN users ON users.user_id = timeline.userid2 
CROSS JOIN (SELECT filename 
      FROM media 
      WHERE album = 0 
      LIMIT 1) AS media 

아니면 SELECT 절에 하위 쿼리를 넣을 수 있습니다 :

SELECT dat, sourceinfo, users.firstname, users.lastname, users.token, users.prof, 
     (SELECT filename 
     FROM media 
     WHERE album = 0 
     LIMIT 1) AS filename 
FROM timeline 
JOIN users ON users.user_id = timeline.userid2 
관련 문제