gpt4 book ai didi

PHP/MYSQL 连接和区分多个表并按 2 个条件显示结果

转载 作者:行者123 更新时间:2023-11-29 23:49:37 24 4
gpt4 key购买 nike

我已经搜索过类似的问题,但没有找到任何东西:-(,所以,我决定提出一个问题。我正在一家旅行社网站上工作,但我陷入了困境。我有6张 table :

1。类别
2. 国家
3. 城市
4. 类型
5. 报价
6.价格

现在,每一个的关系是这样的:在offer表中记录了categorycountrycity的id type,并且,在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 ;

此查询仅正确显示每个有价格的报价一次,但是,我需要的是还显示有效且没有价格的报价。因此,我需要一些关于正确查询的帮助,以显示所有有效的、有或没有价格的报价

最佳答案

对价格表使用左连接,并将 where 条件移至 on 子句中。我使用别名为表提供短名称,因此如果我没有选择正确的列,请为列使用正确的别名。

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'

关于PHP/MYSQL 连接和区分多个表并按 2 个条件显示结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25711870/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com