Php 如何从db where version字段中选择最新版本

Php 如何从db where version字段中选择最新版本,php,mysql,select,max,Php,Mysql,Select,Max,我有一个名为“定价”的表,它有很多字段,包括“分销商”和“版本”。Distributor字段是Distributor表中的id。每个分发服务器都有不同的版本。类似于:20131109AV-V120131110AV-V220131112AV-V3的版本为distributor=1的版本,2013111WC-V12013111WC-V2的版本为distributor=2的版本等。我需要从定价表中选择所有数据,其中版本等于每个分销商的最新版本 例如:20131112AV-V3是distributor=

我有一个名为“定价”的表,它有很多字段,包括“分销商”和“版本”。Distributor字段是Distributor表中的id。每个分发服务器都有不同的版本。类似于:20131109AV-V120131110AV-V220131112AV-V3的版本为distributor=1的版本,2013111WC-V12013111WC-V2的版本为distributor=2的版本等。我需要从定价表中选择所有数据,其中版本等于每个分销商的最新版本

例如:20131112AV-V3是distributor=1的最新版本 2013111WC-V2是distributor=2的最新版本

我可以一步查询吗

或者我是否需要逐部分查询,例如,首先选择distributor和version,然后使用distributor和latest version(下面给出了代码:)在表中循环

$all\u distributors=mysql\u查询($con,$distributor`,从`pricing`组中选择`distributor`,MAX(`version`)作为`version`);
while($all\u dist=mysql\u fetch\u数组($all\u分发服务器))
{
$latest_version=$all_dist['version'];
$distributor=$all_dist['distributor'];
echo$发行商。“-”$最新版本。“
”; //再次选择使用此$distributor&$latest\u版本的查询 }
有什么想法吗


谢谢

您可以使用单个查询:

SELECT p.*
FROM pricing p
    JOIN 
        (
            SELECT distributor, MAX(version) AS ver 
            FROM pricing 
            GROUP BY distributor
        ) mx ON mx.ver = p.version AND p.distributor = mx.distributor

谢谢你的回复!不客气!接受+投票永远是最好的答案:-)
SELECT p.*
FROM pricing p
    JOIN 
        (
            SELECT distributor, MAX(version) AS ver 
            FROM pricing 
            GROUP BY distributor
        ) mx ON mx.ver = p.version AND p.distributor = mx.distributor