Php MySQL从最低ID中选择列
如何从最低ID a列中进行选择?我想得到kartikelpict,从最低nNr和最低nNr得到cPfadPhp MySQL从最低ID中选择列,php,mysql,Php,Mysql,如何从最低ID a列中进行选择?我想得到kartikelpict,从最低nNr和最低nNr得到cPfad tartikelpict +--------------+--------------+-------+ | kartikelpict | cPfad | nNr | +--------------+--------------+-------+ | 560 | picture4.jpg | 4 | | 560 | picture
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您需要包括tabletartikel
?我已经被要求了,我不知道他想要得到什么。问题中没有提到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;