Php MySQL从最低ID中选择列

Php MySQL从最低ID中选择列,php,mysql,Php,Mysql,如何从最低ID a列中进行选择?我想得到kartikelpict,从最低nNr和最低nNr得到cPfad tartikelpict +--------------+--------------+-------+ | kartikelpict | cPfad | nNr | +--------------+--------------+-------+ | 560 | picture4.jpg | 4 | | 560 | picture

如何从最低ID a列中进行选择?我想得到kartikelpict,从最低nNr和最低nNr得到cPfad

tartikelpict
+--------------+--------------+-------+
| kartikelpict |     cPfad    |  nNr  |
+--------------+--------------+-------+
|     560      | picture4.jpg |   4   |
|     560      | picture3.jpg |   3   |
|     560      | picture2.jpg |   2   |
|     560      | picture.jpg  |   1   |
+--------------+--------------+-------+
|     561      | picture4.jpg |   4   |
|     561      | picture3.jpg |   3   |
|     561      | picture2.jpg |   2   |
|     561      | picture.jpg  |   1   |
+--------------+--------------+-------+

tartikel
+----------+-------+---------------------+------------+-------+
| kArtikel | cName |  cKurzBeschreibung  | dErstellt  | cSeo  |
+----------+-------+---------------------+------------+-------+
|   560    | 12345 |   Short Description | 2014-03-25 | 12345 |
+----------+-------+---------------------+------------+-------+
|   561    | ABCDE |   Short Description | 2014-03-25 | abcde |
+----------+-------+---------------------+------------+-------+
这是我的要求

SELECT 
    p1.kArtikel, 
    p2.kartikelpict,
    p2.nNr,
    p2.cPfad
    FROM tartikel AS p1
    JOIN tartikelpict AS p2 
    ON (p1.kArtikel = p2.kartikelpict)
    JOIN (SELECT kartikelpict, cPfad, MIN(nNr) nNr FROM tartikelpict GROUP BY kartikelpict) p3
    ON(p2.kartikelpict = p3.kartikelpict AND p2.nNr = p3.nNr AND p3.nNr = p3.cPfad)
    ORDER BY p1.kArtikel;
这是我正在调用的PHP代码

while ($row = mysql_fetch_array($result)){ 
    $nNr = $row['nNr'];
    echo "\t\t" . '<link>http://domain/'.$cSeo.'</link>' . "\n";
}
while($row=mysql\u fetch\u array($result)){
$nNr=$row['nNr'];
回显“\t\t”。'http://domain/“.$cSeo.”“\n”;
}

cPfad似乎在扰乱您的子查询和join子句。试试这个:

SELECT p1.kArtikel, 
    p2.kartikelpict,
    p2.nNr,
    p2.cPfad
FROM tartikel AS p1
JOIN tartikelpict AS p2  
     ON (p1.kArtikel = p2.kartikelpict)
JOIN (SELECT kartikelpict,  MIN(nNr) min_nNr FROM tartikelpict GROUP BY kartikelpict) p3
     ON (p2.kartikelpict = p3.kartikelpict AND p2.nNr = p3.min_nNr)
ORDER BY p1.kArtikel;

您能展示一下,在这个例子中您想要得到哪些行吗?在这个表中,似乎有两行共享最低的
nNr
值。它们恰好具有相同的cPfad值,但不具有相同的kartikelpict值。您的结果集应该是什么样的?请提供一个示例。示例:我将在kartikelpict获得560的ID,在那里我想加入它并找到最低的nNr,如果我得到的是比我想选择图片最低的(1)。jpgWhy您需要包括table
tartikel
?我已经被要求了,我不知道他想要得到什么。问题中没有提到tartikel表,但我保留了他的查询。不知何故,仍然不是正确的输出。下面是全部代码:您得到的输出是什么?我已经添加了您的代码,但是仍然无法从最低的nNr中选择cPath。什么问题?我对PHP不太感兴趣(您的API也不推荐使用),所以只需提供一个SQLFIDLE。
SELECT x.*
  FROM tartikelpict x
  JOIN 
     ( SELECT kartikelpict
            , MIN(nNr) min_nnr
         FROM tartikelpict 
        GROUP 
           BY kartikelpict
     ) y
    ON y. kartikelpict =  x.kartikelpict
   AND y. min_nnr = x.nnr;