【问题标题】:Pull MIN and MAX prices from database从数据库中提取 MIN 和 MAX 价格
【发布时间】:2013-02-26 13:30:42
【问题描述】:

我需要从 table1、table2、table3 中选择所有 (*) 行。但我需要在这个 INNER JOIN 中从表 2 中选择 MIN 和 MAX 价格。我已经阅读了如何执行此操作,但是如何在 INNER JOIN 中执行此操作,以及如何在 PHP 变量中显示它。

初始问题:我如何在拉取最小值和最大值后显示它们..(例如$Result['MinPrice']$Result['MaxPrice'])。

这是我的查询:

$Query = mysql_query("
   SELECT      *
   FROM        table1
   INNER JOIN  table2 ON table1.UserID = table2.UserID
   INNER JOIN  tables3 ON table2.DeviceID = table3.DeviceID
   WHERE       table2.DeviceID = '$GetDeviceID'
");

这是表格结构:

table1 = 用户信息

UserID   UserFirstName     UserLastName    UserDisplayName
1        John              Doe             John D.

table2 = 列表

ListingID  UserID   DeviceID
11         1        2

table3 = 设备

DeviceID
2

【问题讨论】:

  • 告诉我们问题出在哪里。试图从查询中找出问题是没有意义的……这会导致很多不同的想法,而且很可能没有一个与你真正的问题相匹配。 ;)
  • 拉取最小值和最大值后如何显示它们..(例如 $Result['MinPrice'], $Result['MaxPrice'])。
  • 看看BETWEEN运算符
  • 您的查询没有获得任何最大值或最小值。

标签: php mysql


【解决方案1】:

如果您真的想以这种方式执行您的要求,您可以使用下面显示的查询。但是,如果您在查询时返回了多行,这确实会返回很多重复的行。试试看它是否有效。

$Query = mysql_query("
    SELECT table1.*, table2.*, table3.*,
           MIN(table2.price) as minny, 
           MAX(table2.price) as maxxy
    FROM   table1
    INNER JOIN table2 ON table1.UserID = table2.UserID
    INNER JOIN tables3 ON table1.DeviceID = table3.DeviceID
    WHERE  table1.DeviceID = '$Something'
    GROUP BY table2.ListingAskingPrice
");

然后通过$result['minny'] and $result['maxxy']得到这个值

【讨论】:

  • Ahhhh,所以您将 min、max 分配给一个名称、minny 和 maxxy.. 这就是我所需要的!谢谢先生。我看到一些示例正在分组,但它不起作用。
  • 我称它们为 minny 和 maxxy 只是为了方便您以后调用它们并避免混淆。这不是 100% 必要的,但代码中的一些 minny/maxxy 总是很有趣:)
  • 嗯...聚合函数何时开始与非分组字段一起工作?我很确定查询不会以这种方式工作。
  • 哈哈是的,我知道名字是任意的,但它可能很有趣!
  • 直到,通过聚合函数你在谈论 MIN(), MAX() ?我不确定,但是 GROUPING 不起作用。
猜你喜欢
  • 1970-01-01
  • 2017-06-10
  • 2020-10-12
  • 2017-08-07
  • 1970-01-01
  • 2016-03-02
  • 1970-01-01
  • 1970-01-01
  • 2021-04-03
相关资源
最近更新 更多