从第一个表选择中获取结果,即使右连接失败

时间:2019-01-22 17:28:22

标签: mysql join left-join right-join

我正在使用下面的SELECT语句将属性表与epc表联接在一起。 EPC并非总是可用于物业。

SELECT p.dateAdded, p.paon, p.saon, p.street, p.locality, p.townCity, p.district, p.county, p.propertyType, 
     p.propertyType, p.oldNew, p.postcode, p.tenure, p.ppd, p.bedrooms, p.bathrooms, p.receptions, p.lastSalePrice, p.lastTransferDate, 
     e.INSPECTION_DATE, e.TOTAL_FLOOR_AREA, e.CURRENT_ENERGY_RATING, e.POTENTIAL_ENERGY_RATING, e.CURRENT_ENERGY_EFFICIENCY, e.POTENTIAL_ENERGY_EFFICIENCY, 
     e.PROPERTY_TYPE 
      FROM property p
      LEFT JOIN epc e ON p.postcode = e.POSTCODE AND CONCAT(p.paon, ', ', p.street) = e.ADDRESS1 
      WHERE p.paon = 8 AND p.postcode = "TS6 9LN" 
      ORDER BY e.INSPECTION_DATE, p.lastTransferDate DESC 
      LIMIT 1

我可以进行2个查询,但是我想知道如果连接失败,是否仍然可以从表属性中选择行。

1 个答案:

答案 0 :(得分:0)

  

我想知道如果连接失败,是否仍然可以从表属性中选择行。

LEFT JOIN已经具有您要寻找的行为。

但是您有ORDER BY e.INSPECTION_DATE ... DESC ... LIMIT 1,因此仅返回最高INSPECTION_DATE的行。不会是具有NULL e值的行。