0

私はこの問題について質問があります..誰かが私を助けることができますか?

これは私の質問です

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
4

1 に答える 1

2

問題はこの選択にあります:

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

1つの値しか返すことができず、さらに多くの値を返します。


考えられる解決策は次の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

他の句を取得するために左結合を使用しました。それが必要なもののようだったからです。

于 2012-06-08T14:31:13.113 に答える