2012-08-03 3 views
0

고객이 주문이 하나 뿐인 orders 테이블에서 고객 및 송장 ID 목록을 검색하려고합니다. 후속 SQL은 0 개의 레코드를 반환하며 수십 개가 있어야합니다. 하위 쿼리는 유효한 사용자 ID로 대체하면 올바르게 작동합니다. 나는 어떤 잘못을 저 지르게 될 것입니다, 어떤 도움이 필요합니까?MySQL 비교 연산자가있는 하위 쿼리

SELECT tblclients.id AS clientid, tblinvoices.id AS invoiceid 
      FROM tblorders 
      join tblinvoices ON tblorders.invoiceid = tblinvoices.id 
      join tblclients ON tblorders.userid = tblclients.id 
      WHERE (SELECT COUNT(*) FROM tblorders WHERE userid = tblorders.userid) = 1; 
+0

이 달성 하려는지 : 추가 T1 별칭을 시도'WHERE (tblorders FROM SELECT COUNT (*) WHERE 사용자 ID = tblorders.userid) = 1' – mlishn

+0

곳과 관련된 주문 수 클라이언트가 하나입니다. – Michelle

+0

그 결과는 단지'1 = 1' 또는'0 = 1' 또는 그 외의 조합이됩니까? – mlishn

답변

1

별칭 문제가 있다고 생각합니다.

SELECT tblclients.id AS clientid, tblinvoices.id AS invoiceid 
      FROM tblorders T1 
      join tblinvoices ON T1.invoiceid = tblinvoices.id 
      join tblclients ON T1.userid = tblclients.id 
      WHERE (SELECT COUNT(*) FROM tblorders WHERE userid = T1.userid) = 1;