조인을 사용하여 2 개의 테이블을 쿼리하려고합니다.왜 1 행만 반환합니까?
SELECT tmp.pk, tmp.domain, count(crawl.pk)
FROM (
SELECT * FROM domains
WHERE domain IN('www.google.com', 'www.yahoo.com')
AND pk < 10000
) tmp
JOIN crawl ON crawl.domain=tmp.pk
AND crawl.date_crawled <= 3
HAVING COUNT(crawl.pk) < 1000
결과 :
+-------+--------------------+-----------------+
| pk | domain | count(crawl.pk) |
+-------+--------------------+-----------------+
| 14929 | www.yahoo.com | 88 |
+-------+--------------------+-----------------+
1 row in set (0.03 sec)
나는 '내가 얻을 다음 IN 문에서'www.yahoo.com '을 제거하는 경우 www.google.com 나는 2 개 행을 얻을 수 있지만 1을 얻을 것으로 예상 '결과 (그러므로, www.google.com 및 www.yahoo.com이 모두 내 기준을 충족 함을 알고 있습니다).
2를 반환해야하는 이유는 1 행만 반환하는 이유는 무엇입니까?
데이터를 보지 않고도 알 수있는 방법이 없습니다. – doublesharp
당신의'GROUP BY' 문은 어디에 있습니까? – Phil
@ Phil : Excellent catch. 고마워! –