我遇到了一個問題,我找不出爲什麼會給我帶來麻煩。在MySQL中選擇不同的行
我想用DISTINCT語句選擇數據庫中的所有商品,因此每個商品ID都是唯一的。下面是我在截圖的形式登上的Navicat:
Screenshot http://www.dreshar.com/sql.jpg http://www.dreshar.com/sql.jpg
對於任何人誰看不到圖像,這是選擇 - 哪裏是我的錯誤?
SELECT DISTINCT
guf_offers.id as OfferId,
guf_offers.validfrom AS OfferValidFrom,
guf_offers.validtill AS OfferValidTill,
guf_offers.days AS OfferDays,
guf_offers.active,
guf_offers.roomtype1 AS OfferRoomtype1,
guf_offers.roomprice1 AS OfferRoomprice1,
guf_countries.caption AS CountryCaption,
guf_courts.caption AS CourtCaption,
guf_hotels.caption AS HotelCaption,
guf_hotels.id AS HotelId,
guf_hotel_images.image AS HotelImage,
guf_offer_types.caption AS OffertypeCaption,
guf_regions.caption AS RegionCaption,
guf_offers.hoteloncourse AS OfferHotelOnCourse,
guf_offers.wellnessspa AS OfferWellnessSpa,
guf_offers.18hole AS Offer18Hole,
guf_offers.topangebot AS OfferTopangebot
FROM guf_offers , guf_countries , guf_courts , guf_hotels , guf_hotel_images , guf_offer_types , guf_regions
WHERE guf_offers.country_id = guf_countries.id AND guf_offers.court_id = guf_courts.id AND guf_offers.hotel_id = guf_hotels.id AND guf_hotel_images.hotel_id = guf_offers.hotel_id AND guf_offers.offer_type_id = guf_offer_types.id AND guf_offers.region_id = guf_regions.id AND guf_offers.active = 1 AND STR_TO_DATE(guf_offers.validtill, '%d.%m.%Y') > STR_TO_DATE('29.04.2013', '%d.%m.%Y')
你說得對 - 我明白。有沒有可能告訴SQL只選擇第一個結果,所以我只會得到第一個找到的圖像? – Dreshar 2013-04-29 16:52:22
是的,但您必須指定第一個結果的含義。例如, – 2013-04-29 17:07:32
。對於每個結果,請選擇hotel_images中顯示的第一個圖像以顯示在結果網站上 – Dreshar 2013-04-29 17:12:53