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 回答