gpt4 book ai didi

php - 使用 MySQL 编写复杂查询时遇到问题

转载 作者:行者123 更新时间:2023-11-29 05:42:51 25 4
gpt4 key购买 nike

我需要一个查询来获取结果,使用两个不同的表。

输入是 $tagID,由 $_GET 给出。第一个表 coupons_tags 有一个 tagID 字段和一个 couponID 字段。第二个表 coupons 有一个 couponID 字段,其余字段是我想要的信息。

根据我提供的信息,我将如何运行查询以找到与 $_GET 中的输入变量匹配的所有优惠券?我使用多个查询进行了半工作,但代码很糟糕,因为我是多表查询的新手。

我正在使用 MySQL 和 PHP。

最佳答案

虽然 jkj 为您提供的解决方案有效,但它使用了一种较旧的连接表方式,特别是在一个子句中混合了连接条件和过滤条件,即 WHERE 子句。

我敢说,目前标准的连接方式提出了专用关键字,使您可以将连接逻辑与过滤逻辑分开,从而使您的查询更加清晰。

根据当前标准,您将如何进行:

SELECT c.*
FROM coupons_tags ct
INNER JOIN coupons c ON ct.couponID = c.couponID
WHERE ct.tagID = $tagID

在这里,您使用 INNER JOIN 子句指定连接,并在之后放置连接条件ct.couponID = c.couponID ON 关键字,从而在 WHERE 子句中留下过滤条件ct.tagID = $tagID

此解决方案还具有表别名(ctc)的特点,当您必须查询多个表时,它们也可以帮助您提高脚本的可读性。

如果在查询多个表时,您指定了特定的列进行选择,而不是像我所做的那样只是 *alias.*,请记住也包括表别名.这并不总是必要的,因为有些列只出现在您正在查询的一个表中,并且数据库引擎不会混淆确定您的意思是该列属于哪个表,但这始终是一个很好的做法附加的别名,因为它再次提高了脚本的可读性和可维护性。

关于php - 使用 MySQL 编写复杂查询时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5253771/

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