我有这个问题的查询.. 任何人都可以帮助我?
这是我的查询
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
答案 0 :(得分: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
我使用了左连接来获取另一个子句,因为它似乎就是你所需要的。