我有表產品和列表。在做下面的查詢:SQL INNER JOIN DISTINCT
SELECT DISTINCT *
FROM products
INNER JOIN listings
ON products.product_number=listings.product_number
這是「搜索」功能:
WHERE products.product_number !=''
AND listings.monthly_price BETWEEN '0' AND '10'
這返回的產品清單之一的雙項。爲什麼不是DISTINCT工作?
編輯
產品:
product_number, make, model model_number, colour, processor, battery_standby, battery_talk, camera, flash, screen_size, screen_res, memory
人數:
listing_number, featured, date, member_id, network, length, product_number, monthly_price, minutes, texts, data, image1
從本質上講,我想通過自己的PRODUCT_NUMBER
創建結果行匹配listings
表到product
表。這是爲了使手機列表網站的搜索功能更精確。
具體而言,搜索功能使用products
表進行搜索,然後使用listings
表顯示有關電話列表的有用信息。
ANSWER
SELECT DISTINCT *
FROM listings
INNER JOIN products
ON products.product_number=listings.product_number
上面確實起作用;只需將桌子交換一下。我還在listings
中插入了幾行,「問題」消失了。即使它沒有解決,它不再發生了......不知道問題是什麼。
「DISTINCT」適用於**所有**列 - 在您認爲是「雙重條目」的兩行中,所有**列都相同? –
DISTINCT *將返回符合條件的'products'和'listings'中的所有字段的不同排列。當然,你的意思是DISTINCT products.productId,listings.listingid或類似的? – StuartLC
它會建議您選擇的字段之一不同 – dougajmcdonald