SELECT <strong>DISTINCT</strong>
h.house_id AS id,
title AS title,
cover_image_url AS thumb,
house_price AS price,
unit_price AS unitPrice,
house_size AS size,
`house_city_proper` AS area,
house_room AS chambers,
house_hall AS halls,
house_toilet AS toilets,
`house_partition` AS businessZone,
address AS address,
total_floor AS storey,
floor AS floor,
`house_property` AS buildings,
house_aspect AS orientation,
h.`house_usage` AS type,
's' AS tradeMode,
modDate AS lastUpdated,
0 AS sort
FROM
`t_house_sold` h
LEFT JOIN
`t_promotion` p ON (h.`house_id` = p.`house_id`)
WHERE
h.`house_area_id` = 66
AND h.`house_usage` = 'xzl'
AND `house_state` = 'PUB'
AND delflag = 0
AND house_agent_state = 'NORMAL'
AND house_price != 0
ORDER BY `promotion_time` DESC , `modDate` DESC , `promotion_type` DESC
LIMIT 500
如果沒有用DISTINCT 會出現複復數據。也可以算作是處理這種重複的一種方案。
類似於:A表
1 a
2 b
B表:
1 at
1 ac
2 bc
A LEFT JOIN B
ID爲1的就會出現兩條記錄
所以一般副表應有唯一記錄,否則易出現重複記錄。
方案一:表裏不出現一對多
方案二:查詢結果去重