ID有多條記錄導致用於副表 連接查詢時會出現重複

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的就會出現兩條記錄


所以一般副表應有唯一記錄,否則易出現重複記錄。

方案一:表裏不出現一對多

方案二:查詢結果去重


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章