2011-08-22 2 views
-1

mysql 쿼리에 문제가 있습니다. 여러 테이블을 함께 조인하려고합니다. 하나의 테이블에는 성공적인 온라인 고객 목록이 있고 다른 테이블에는 트래픽 소스가있는 테이블이 있습니다. 나는 어떤 고객이 어떤 광고에서 왔는지 추적하려고 노력 중이다. 따라서 특정 날짜와 특정 캠페인에서 온 신규 고객을 쿼리하고 싶습니다.mysql 오류 코드 1064

SELECT keyword, COUNT(keyword) FROM in_clicks AS ic WHERE ic.create_date LIKE '%2011-08-19%' GROUP BY ic.keyword ORDER BY COUNT(ic.keyword) DESC 
     INNER JOIN leads AS l ON ls.lead_id = l.id 
     INNER JOIN lead_status AS ls ON ls.lead_id = ls.id 
     INNER JOIN ads AS a ON ic.ad_id = a.id 
     INNER JOIN ad_groups AS ag ON a.ad_group_id = ag.id 
     INNER JOIN campaigns AS c ON ag.campaign_id = c.id; 

위의 코드를 실행했는데 다음 오류가 발생했습니다.

Error Code: 1064 
'INNER JOIN leads AS l ON ls.lead_id = l.id Innner Join lead_status AS ls' at line 2 
+0

ERROR 1064 : SQL 구문에 오류가 있습니다. – Johan

+2

당신은 확실합니까? 귀하의 질문입니까? thee는 ("nnner"대신) 귀하의 질의에 "Innner"가 아닙니다. – Bohemian

답변

4

이것은 더 잘 실행되어야합니다 :-). 되어

SELECT keyword, COUNT(keyword) 
FROM in_clicks AS ic 
     INNER JOIN leads AS l ON ls.lead_id = l.id 
     INNER JOIN lead_status AS ls ON ls.lead_id = ls.id 
     INNER JOIN ads AS a ON ic.ad_id = a.id 
     INNER JOIN ad_groups AS ag ON a.ad_group_id = ag.id 
     INNER JOIN campaigns AS c ON ag.campaign_id = c.id; 
WHERE ic.create_date LIKE '%2011-08-19%' 
GROUP BY ic.keyword 
ORDER BY COUNT(ic.keyword) DESC 

순서 : SELECT ... FROM ... 가입 ... WHERE ... GROUP BY ... HAVING ... ORDER BY ... 제한하는 INNER JOIN 조항의 모든해야

2

FROM에서 WHERE 절 사이입니다. 동일한 쿼리에서 WHERE 다음에 INNER JOIN을 사용하는 것은 구문 상 유효하지 않습니다.

보헤미안이 지적한 바와 같이 InnnerINNER이어야합니다 (사용자의 수는 n 개).