我正在尝试从两个表中运行一个查询,一个没有日期,另一个表没有。
我只希望从第二个表中记录最新的日期结果,因为它会使数据不正确。
我在MYSQL中使用以下查询。
$sql = "SELECT acoll.PIECE_NO, odd.FROM_POS
FROM acoll, odd
WHERE acoll.PIECE_NO = odweld.PIECE and odd.DATE IN
(SELECT
MAX(DATE)
FROM
odd
)
GROUP BY odd.FROM_POS" ;
它似乎没有给我任何结果,我已经尝试了很多不同的方式几个小时,而且似乎无法破解它,
很抱歉,如果这是一个非常业余的问题,我是mysql和php的新手。
如果您需要更多信息,请与我们联系。
答案 0 :(得分:2)
一种方法是过滤join
:
select *
from acoll t1
join odd t2
on t1.piece_no = t2.piece
join (
select piece
, max(date) as max_date
from odd
group by
piece
) filter
on filter.piece = t2.piece
and filter.max_date = t2.date
或相关子查询:
select *
from acoll t1
join odd t2
on t1.piece_no = t2.piece
where t2.date =
(
select max(date)
from odd t2_max
where t2_max.piece = t2.piece
)
可以在greatest-n-per-group代码中找到更多解决方案。
答案 1 :(得分:0)
我认为你需要研究的是HAVING
条款。
以下是一个例子:
SELECT
a.PIECE_NO
, o.FROM_POS
FROM
acoll a
INNER JOIN odd o ON a.PIECE_NO = o.PIECE
GROUP BY
a.PIECE_NO
, o.FROM_POS
HAVING
o.DATE = MAX(o.DATE)