我现在有两张桌子(工作和出价)。它们由job_id捆绑在一起,这在Jobs表中是唯一的,但在Bids中则不是。同样在Jobs表中,是位置信息。我需要做的是在工作表中获得每个城市的最低出价。
基本上我需要抓住每个DISTINCT城市并获得该城市的所有工作,然后抓住所有工作的投标,比较它们并抓住所有这些中最低的。
我一直在尝试用SQL做,但也可以在php中使用foreach循环。
答案 0 :(得分:3)
JOIN
两个表格,然后是GROUP BY
city:
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
答案 1 :(得分:1)
如果我理解正确,你要找的是
SELECT MIN(bids_field)
FROM jobs, bids
WHERE jobs.job_id = bids.job_id
GROUP BY location
答案 2 :(得分:1)
可能:
SELECT jobs.city, MIN(bids.bid_amount)
FROM jobs
LEFT JOIN bids ON bids.job_id = jobs.job_id
GROUP BY jobs.city;
答案 3 :(得分:1)
使用子查询找出最低出价金额,然后根据该过滤器进行过滤。
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
)