2012-06-08 3 views
0

나는이 문제로 쿼리를 가지고있다. 어떤 사람들이 나를 도울 수 있습니까?하위 쿼리가 두 개 이상의 값을 반환했습니다.

(select t_lokasi.propinsi from t_lokasi,t_tarif where t_lokasi.id_prop =t_tarif.id_propt) 

그것은 단지 1 개 값을 반환 할 수 있으며 더 많은 반환 것 :

내 쿼리

select t_tarif.lama, 
    t_tarif.id, 
    t_tarif.kurir, 
    t_tarif.id_propd, 
    t_lokasi.propinsi as 'propinsi_asal', 
    t_tarif.kota_asal, 
    t_tarif.id_propt, 
    (select 
     t_lokasi.propinsi 
     from t_lokasi,t_tarif 
     where t_lokasi.id_prop =t_tarif.id_propt)as 'propinsi_tujuan', 
    t_tarif.kota_tujuan, 
    t_tarif.tarif 
from t_tarif,t_lokasi 
where t_lokasi.id_prop = t_tarif.id_propd 
+2

쿼리, 상관 된 하위 쿼리 및 암시 적 조인에서 두 개의 SQL 반 패턴을 사용했습니다. 추천 단어 http://www.amazon.com/SQL-Antipatterns-Programming-Pragmatic-Programmers/dp/1934356557/ref=sr_1_cc_1?s=aps&ie=UTF8&qid=1339166836&sr=1-1-catcorr – HLGEM

답변

2

문제는이 선택에있다.


가능한 솔루션은 JOIN을 사용하고 있습니다 : 그건 당신이 필요로 무엇을 보였다 때문에

나는 왼쪽을 사용했습니다
select t.lama, 
     t.id, 
     t.kurir, 
     t.id_propd, 
     l.propinsi as 'propinsi_asal', 
     t.kota_asal, 
     t.id_propt, 
     l2.propinsi as 'propinsi_tujuan', 
     t.kota_tujuan, 
     t.tarif 
from t_tarif t 
inner join t_lokasi on l.id_prop = t.id_propd 
left outer join t_lokasi l2 on l2.id_prop = t.id_propt 

다른 절을 얻기 위해 가입 할 수 있습니다.

+0

@Kartika가 내 솔루션을 확인하십시오. 도움이되기를 바랍니다! –

+0

오류가 발생합니다. 메시지 102, 수준 15, 상태 1, 줄 12 '.'근처에서 구문이 잘못되었습니다. – Kartika

+0

ON 키워드가 누락되었습니다. 수정 된 쿼리를 시도하십시오. – HLGEM

관련 문제