我现在设置了2个表格(Jobs和Bids)。它们通过job_id绑定在一起,job_id在Jobs表中是唯一的,但不在Bids中。在Jobs表中,也是位置信息。我需要做的是获得就业表中每个城市的最低出价。SQL从一对多关系中获取最低变量
基本上我需要抓住每个不同的城市,并让所有的工作在这个城市,然后抓住了工作的所有的出价,对它们进行比较并抓住最低出所有这些的。
我一直在试图做到这一点的SQL,但是将确定在PHP中使用foreach循环为好。
我现在设置了2个表格(Jobs和Bids)。它们通过job_id绑定在一起,job_id在Jobs表中是唯一的,但不在Bids中。在Jobs表中,也是位置信息。我需要做的是获得就业表中每个城市的最低出价。SQL从一对多关系中获取最低变量
基本上我需要抓住每个不同的城市,并让所有的工作在这个城市,然后抓住了工作的所有的出价,对它们进行比较并抓住最低出所有这些的。
我一直在试图做到这一点的SQL,但是将确定在PHP中使用foreach循环为好。
JOIN
两个表,然后GROUP BY
城市:
SELECT j.city
, MIN(b.amount) AS minimum_bid
FROM
Jobs AS j
JOIN --- LEFT JOIN if you want cities
Bids AS b --- without any bid, too
ON b.job_id = j.job_id
GROUP BY j.city
这工作就像一个魅力,非常感谢你=) – IceBlueFire
如果我理解正确的话,你在找什么是
SELECT MIN(bids_field)
FROM jobs, bids
WHERE jobs.job_id = bids.job_id
GROUP BY location
可能:
SELECT jobs.city, MIN(bids.bid_amount)
FROM jobs
LEFT JOIN bids ON bids.job_id = jobs.job_id
GROUP BY jobs.city;
使用子查询找出最低出价金额,然后基于此进行过滤。
select b.*
from job j
join bid b
on b.job_id = j.job_id
where b.amount =
(
select min(b2.amount)
from bid b2
where b2.job_id = b.job_id
)
对不起,我正在使用MySQL 5.0.8 – IceBlueFire