2010-04-28 5 views
0

mysql에서이 작업을 수행하는 방법은 무엇입니까?중첩 된 SQL 문을 사용하고

선택 ID, COMPANY_NAME, contact1, 교외, CATEGORY, 빅토리아 전화 (도시 allsuburbs에서 교외를 선택 (에서)) 및 CATEGORY = '은행'문 아래이가 작동

: 선택 ID, COMPANY_NAME , contact1, 교외, CATEGORY, 도시는 (allsuburbs에서 교외 선택) 빅토리아 전화

내가 추가하는 경우 "와"그것은 나에게 빈 결과 집합, 감사

+0

두 조건을 모두 만족하는 행이 있습니까? 너의 질문은 괜찮은 것 같아. – Sadat

답변

1

조인의 작동 방식에 대해 알아보십시오.

select 
    v.ID,v.COMPANY_NAME,v.contact1,v.SUBURB,v.CATEGORY,v.PHONE 
from 
    Victoria v 
    inner join allsuburbs s on s.suburb = v.city 
where 
    v.CATEGORY='Banks' 

이외에도 검색어가 전체적으로 의미가 없습니다.

  • 테이블이 네임드 Victoria이지만, city이라는 필드가 포함되어 있습니다. 당신의 다른 도시들도 그들 만의 테이블을 가지고 있습니까?
  • 테이블에 allsuburbs이 있지만, Victoria.suburb이라는 필드가 존재하더라도 기준은 Victoria.cityallsuburbs.suburb입니다. 그럼, Victoria.suburb은 무엇입니까?
  • 테이블의 이름은 allsuburbs입니다. 교외가있는 다른 테이블이 있습니까? 아니면이 테이블이 유일한 것입니까? 그것이 유일한 것이라면, 이름은 중복됩니다.
  • 필드가 contact1입니다. contact2 ... contact10도 있으십니까? 데이터베이스 설계가 잘못되었습니다.
  • 필드 이름의 절반이 대문자로 된 이유는 무엇입니까 (전부는 아님)?

아, SQL의 일반적인 형식은 다음과 같습니다. 대문자, 필드 이름 등 대소 문자가 혼합 된 SQL 키워드. 훨씬 읽기 쉽습니다.

+0

합류가 더 좋은 생각이었습니다 – klay

+0

@klay : 그리고 내가 물었던 다른 질문들? – Tomalak

0

나는 당신이 잃어 버렸던 것 같아를 제공합니다 괄호?

.. PHONE from Victoria where 
(city in (select suburb from allsuburbs)) and CATEGORY='Banks' 

내가해야 같은데요 :

.. PHONE from Victoria where 
city in (select suburb from allsuburbs) and CATEGORY='Banks' 

이 더 의미가 있지만, 첫 번째 경우 내가 믿는 확인 SQL 문이 아닌 경우 확실하지.

+0

이 두 가지는 동일합니다. 여분의 괄호 쌍은 아무런 차이가 없습니다. – Tomalak