省略空列并提高性能

时间:2017-07-03 12:21:34

标签: sql postgresql

我在下面有一个查询,它从3个表中检索数据。

DateTime createDate = DateTime.ParseExact(date, "yyyy-MM-dd'T'hh-mm-ss", CultureInfo.InvariantCulture);

在结果中有许多空列,执行大约需要315毫秒。我需要省略空列并更快地执行查询。我尝试使用COALESCE,但dint得到了预期的结果。请帮忙。

2 个答案:

答案 0 :(得分:0)

以下查询将仅返回所有表中存在的值。如果要考虑vendor_allocation中可能没有区/供应商中存在相应行的行,请使用左连接。这些行将在连接表中返回null作为值。

if [[ $output4 -gt 0 ]] && [[ $output5 -gt 0 ]] && [[ $output6 -gt 0 ]] && [[ $output7 -gt 0 ]]
then
    echo 'Success'
else
    echo 'Failure'
    exit 1
fi

使用LEFT JOIN

select *
from vendor_allocation as va
  join district as d using ON va.district_id = d.id
  join vendor as v using ON va.vendor_id = v.id;

答案 1 :(得分:0)

这将为您提供附加区域的供应商列表。如果您不想要没有分区的那些,请使用内部联接:

select v.VendorName, d.DistrictName 
from vendor as v 
left join vendor_allocation as va
on v.id=va.vendor_id 
left join district as d
on va.district_id =d.id