簡體   English   中英

PHP / MYSQL連接並區分多個表並按2個條件顯示結果

[英]PHP/MYSQL Join and distinct multiple tables and show results by 2 criteria

我已經搜索了類似的問題,但沒有發現任何問題:-(,所以,我決定打開一個問題。我在旅行社網站上工作,被卡住了。我有6張桌子:

1. category 2. country 3. city 4. type 5. offer 6. price

現在,每個人的關系是這樣的:在offer表中記錄categorycountrycitytype ID,在price表中記錄offer ID。 這樣,通過管理面板,該過程首先創建一個新報價,然后為該報價創建價格。 這是要約ID記錄在價格表中而不是相反的方式。

我現在所擁有的是:

SELECT DISTINCT 
  price.prFood,
  offer.* 
FROM
  category,
  country,
  city,
  `type`,
  price 
  INNER JOIN offer 
    ON price.prOfferID = offer.offerID 
WHERE offerType = typeID 
  AND categoryID = offerCategory 
  AND countryID = offerCountry 
  AND prOfferID = offerID 
  AND offerActive = '1' 
  AND offerCity = cityID ;

此查詢僅一次正確地顯示每個具有價格的報價,但是,我需要顯示的是還處於活動狀態且沒有價格的報價。 因此,我需要一些有關正確查詢的幫助,以顯示所有處於活動狀態,有價或無價的報價

對價格表使用左聯接,然后將on條件放在where子句中。 我已經使用別名為表命名,因此,如果我沒有選擇適當的列,請為列使用正確的別名。

SELECT DISTINCT 
  p.prFood,
  o.* 
FROM
offer o
LEFT JOIN price p ON  o.offerID = p.prOfferID 
INNER JOIN  category ca ON o.offerCategory = ca.categoryID
INNER JOIN  country c ON o.offerCountry = c.countryID 
INNER JOIN  city ci ON o.offerCity = ci.cityID 
INNER JOIN `type` t ON o.offerType = t.typeID 
AND o.offerActive = '1' 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM