[英]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
表中記錄category
, country
, city
, type
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.