SQL使用不同的“连接”;其中;子句,而不是查询的其余部分?

SQL使用不同的“连接”;其中;子句,而不是查询的其余部分?,sql,Sql,所以我在这个拍卖网站上工作。我需要返回的是特定用户的所有出价,以及关于每个出价的一些额外信息 我想要的一条信息是每件商品的最低出价。 这是出价表。”“参考”的投标书是指该投标书所针对的项目。所以我想得到“where bid_for=x”引用的“min(bid_amount)”。但正如您在最后一行中看到的,我已经有了WHERE子句,它通过用户id引用它 简而言之,与查询的其余部分相比,是否可以选择由不同的“where”子句引用的一条(或多条)信息?(如果有道理的话) 可以使用内部select语句执

所以我在这个拍卖网站上工作。我需要返回的是特定用户的所有出价,以及关于每个出价的一些额外信息

我想要的一条信息是每件商品的最低出价。 这是出价表。”“参考”的投标书是指该投标书所针对的项目。所以我想得到“where bid_for=x”引用的“min(bid_amount)”。但正如您在最后一行中看到的,我已经有了WHERE子句,它通过用户id引用它

简而言之,与查询的其余部分相比,是否可以选择由不同的“where”子句引用的一条(或多条)信息?(如果有道理的话)


可以使用内部select语句执行此操作:

+--------+--------+---------+------------+-------------+---------------+-------------+
| bid_id | bid_by | bid_for | bid_amount | pickup_date | delivery_date | valid_until |
+--------+--------+---------+------------+-------------+---------------+-------------+
|      1 |     24 |       2 |      19.99 | 2013-06-01  | 2013-06-01    | 2013-06-01  |
|      2 |     27 |       2 |      25.00 | 2013-06-01  | 2013-06-01    | 2013-06-01  |
+--------+--------+---------+------------+-------------+---------------+-------------+

可以使用内部select语句执行此操作:

+--------+--------+---------+------------+-------------+---------------+-------------+
| bid_id | bid_by | bid_for | bid_amount | pickup_date | delivery_date | valid_until |
+--------+--------+---------+------------+-------------+---------------+-------------+
|      1 |     24 |       2 |      19.99 | 2013-06-01  | 2013-06-01    | 2013-06-01  |
|      2 |     27 |       2 |      25.00 | 2013-06-01  | 2013-06-01    | 2013-06-01  |
+--------+--------+---------+------------+-------------+---------------+-------------+

好的,我自己想出了解决办法。我给
bids
表添加了别名,并将其加入到无别名的
bids
表中。像这样:

SELECT `bid_amount`,`valid_until`, (SELECT min('bid_amount') FROM 'bids') as `lowest_bid`
`cf1`.`country_name` AS `country_from`, `rq`.`city_from`,
`cf2`.`country_name` AS `country_to`, `rq`.`city_to`,
`sub_cat`.`sub_cat_name`,
`cat`.`cat_name`
FROM `bids`
JOIN `request_quote` `rq` ON `bids`.`bid_for` = `rq`.`quoteid`
JOIN `countries` `cf1` ON `rq`.`country_from` = `cf1`.`country_id`
JOIN `countries` `cf2` ON `rq`.`country_to` = `cf2`.`country_id`
LEFT JOIN `cat` ON `rq`.`cat` = `cat`.`cat_id`
LEFT JOIN `sub_cat` ON `rq`.`sub_cat` = `sub_cat`.`sub_cat_id`
WHERE `bids`.`bid_by` = $bidderId GROUP BY `bids`.`bid_amount`

甚至不知道你可以把同一张桌子连到同一张桌子上。但现在你可以开始了,生活和学习:)

好吧,我自己想出了解决办法。我给
bids
表添加了别名,并将其加入到无别名的
bids
表中。像这样:

SELECT `bid_amount`,`valid_until`, (SELECT min('bid_amount') FROM 'bids') as `lowest_bid`
`cf1`.`country_name` AS `country_from`, `rq`.`city_from`,
`cf2`.`country_name` AS `country_to`, `rq`.`city_to`,
`sub_cat`.`sub_cat_name`,
`cat`.`cat_name`
FROM `bids`
JOIN `request_quote` `rq` ON `bids`.`bid_for` = `rq`.`quoteid`
JOIN `countries` `cf1` ON `rq`.`country_from` = `cf1`.`country_id`
JOIN `countries` `cf2` ON `rq`.`country_to` = `cf2`.`country_id`
LEFT JOIN `cat` ON `rq`.`cat` = `cat`.`cat_id`
LEFT JOIN `sub_cat` ON `rq`.`sub_cat` = `sub_cat`.`sub_cat_id`
WHERE `bids`.`bid_by` = $bidderId GROUP BY `bids`.`bid_amount`

甚至不知道你可以把同一张桌子连到同一张桌子上。但现在你可以开始了,生活和学习:)

使用和操作?i、 e.
其中blah=blah和blah=blah
@adaam抱歉,我可能表达得不够好。这个最小值只需要被bid_引用(比如从所有用户而不仅仅是我那里获得这个项目的最低出价)除了SQL(PHP,.NET?)之外,你在开发什么?你能提供一些示例数据和期望的结果吗?如果确实需要不同的where条件,您可能需要使用相关子查询。。如果可能的话,我想单独用SQL来实现这一点。因为我怀疑,否则我需要为每个出价运行一个额外的查询?或者运行多个查询并不像我认为的那样是件坏事?使用和运算符?i、 e.
其中blah=blah和blah=blah
@adaam抱歉,我可能表达得不够好。这个最小值只需要被bid_引用(比如从所有用户而不仅仅是我那里获得这个项目的最低出价)除了SQL(PHP,.NET?)之外,你在开发什么?你能提供一些示例数据和期望的结果吗?如果确实需要不同的where条件,您可能需要使用相关子查询。。如果可能的话,我想单独用SQL来实现这一点。因为我怀疑,否则我需要为每个出价运行一个额外的查询?或者运行多个查询并不像我认为的那样是一件坏事?酷,这也行。我想我会接受你的回答,因为接受我自己的答案看起来不太好。但是对于任何一个看到这一点的人来说,要知道这两个答案都能起作用!所以可能只是语法上的偏好…:)酷,这也行。我想我会接受你的回答,因为接受我自己的答案看起来不太好。但是对于任何一个看到这一点的人来说,要知道这两个答案都能起作用!所以可能只是语法上的偏好…:)