Получить результаты из первого выбора таблицы, даже если правое объединение не удается - PullRequest
0 голосов
/ 22 января 2019

Я использую оператор 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 голосов
/ 22 января 2019

Мне интересно, можно ли мне все же выбрать строку из свойства таблицы, если соединение не удалось.

LEFT JOIN уже имеет поведение, которое вы ищете.

Но у вас есть ORDER BY e.INSPECTION_DATE ... DESC ... LIMIT 1, поэтому возвращается только строка с самым высоким INSPECTION_DATE.Это не будут строки со значениями NULL e.

...