2013-05-06 5 views
1

의 MySQL의에 쿼리를 가입 :내가 두 개의 테이블이 두 테이블

ad (id(int) , userid(int)) : 사용자 열이 매장 광고에 테이블
adcat (adid(int) , catid(int)) : 각 광고 (AdID에)의 CATID (범주 ID)를 저장하는 테이블

지금 내가 원하는 모든 특정 사용자에 의해

예를 출판 특정 카테고리의 광고의 수를 얻을 수 있습니다 : CATID의 모든 광고를 = 1, 사용자 ID와 = 725

당신이 테이블에 가입해야

답변

2

에 한번 사용 JOINCOUNT

SELECT COUNT(*) ads_total 
    FROM ad a JOIN 
     adcat c ON a.id = c.adid 
WHERE c.catid = 1 AND 
     a.userid = 725 

SQLFiddle

+0

고맙습니다. – iOSGeek

+0

당신을 환영합니다. 기쁜 데 도움이되었습니다. – peterm

3
SELECT * FROM ad 
LEFT JOIN adcat 
ON adcat.adid = ad.id 
WHERE adcat.catid = 1 AND ad.userid = 725 
+0

는 광고를 얻기 위해 작동합니다 감사합니다 , 그리고 그것은 thi를 사용하여 번호를 얻는 것이 쉽습니다. 쿼리를 추가 할 때 – iOSGeek

1

감사 :

SELECT * FROM ad INNER JOIN adcat ON adid=id WHERE catid=1 and userid=725; 
+0

광고를 가져와 주셔서 감사합니다. COUNT을 (를) 추가하여 – iOSGeek

+0

이라는 숫자를 얻을 수 있습니다. 그냥'''*''대신'''COUNT (*)''를 사용하십시오. – luksch