Тема: Помогите составить запрос
Такой вопросик. Подскажите кто сможет.
Значит такая ситуация.
В определенное место форума, нужно вывести картинку рендомного лота с аукциона.
Причем структура таблиц аукциона следующая
таблица лотов аукциона
php_auctions
нужное мне полеauction_id (+ там есть еще поля, которые нужны при формировании ссылки ( название лота, его цена и т.д., и это все содержится в этой табличке и выводится через select * from )
таблица лотов аукциона
php_auctions
структура
+----------+-
|auction_id
+----------+-
| ____10 |
| ____20
| ____20 |
+---+-------+
И таблица с изображениями аукциона
php_auction_media
+------------+--------------------+---------------------------------------+
|auction_id |_______media_id | ___________media_url ________|
+------------+--------------------+---------------------------------------+
|______ 10 | ___________ 1 | ссылка 1 на картинку для аука 10 |
|______ 10 | ___________ 2 | ссылка 2 на картинку для аука 10 |
|______ 20 | ___________ 3 | ссылка 1 на картинку для аука 20 |
|______ 20 | ___________ 4 | ссылка 2 на картинку для аука 20 |
|______ 30 | ___________ 5 | ссылка 1 на картинку для аука 30 |
|______ 30 | ___________ 6 | ссылка 2 на картинку для аука 30 |
|______ 30 | ___________ 7 | ссылка 3 на картинку для аука 30 |
--------------------------------------------------------------------------
----
ТО есть, Во второй таблице есть ай ди аукциона, а также ай ди картинки к этому аукциону, ну и ссылка на эту картинку.
Так как картинок может быть несколько, для одного аукциона, то поэтому и введено поле media_id,.
Мне эту ссылку + еще парочку полей нужно вывести на форум . Притом аукцион выбирать ренлдомно.
Ну сие сделать не мудрено
$getRandomAuctions=mysql_query("SELECT *
FROM php_auctions, php_auction_media
WHERE
php_auctions.auction_id = php_auction_media.auction_id
ORDER BY rand() DESC LIMIT 0,1");
while ($randAuctions = mysql_fetch_array($getRandomAuctions)) {
if ( $randAuctions['max_bid'] == "0.00"){
$price = $randAuctions['start_price'];
}
else {
$price = $randAuctions['max_bid'];
}
if ( $randAuctions['media_url'] == ""){
$pic = "clear.gif ";
}
else {
$pic = '<a href="auction_details.php?&auction_id=' .$randAuctions['auction_id']. '" TARGET="_blank"><img src="thumbnail.php?pic=' . $randAuctions['media_url'] . '&w=70&sq=Y&b=Y" alt="' . $randAuctions['name'] . '" title="' . $randAuctions['name'] . ' #' . $price . ' ' . $randAuctions['currency'] . '"></a>';
}
ну и потом в нужном месте форума я просто вызываю $pic
все отлично работает.
Но как обычно есть одно но. Дело в том, что для одного аукциона полей media_url может быть несколько т.к. аукцион может иметь несколько картинок. И бывает что не всегда выводится картинка которая нужна. ( не первая загруженная для аукциона, а вторая или третья и т.д. ) Что бы этого избежать надо задать условие, что бы при выборке значения из поля media_url, бралось значение media_url равное наименьшему значению media_id , для этого аука...
ТО есть на примере таблицы сверху, для аукциона с id = 20, мне нужно наименьшее значение media_id для этого аукциона, а именно media_id = 3 и ссылку "ссылка 1 на картинку для аука 20 ".
Очень часто бывает что выводится не наименьшее значение, а любое другое. То есть к примеру media_id = 4 и ссылка уже неподходит.
Пробовал таким запросом
getRandomAuctions1=mysql_query("SELECT *
FROM php_auctions, php_auction_media
WHERE
media_url=(SELECT MIN(php_auction_media.media_id)
FROM php_auction_media
WHERE php_auctions.auction_id =php_auction_media.auction_id)
AND
php_auctions.auction_id = php_auction_media.auction_id
ORDER BY rand() DESC LIMIT 0,1");
и ничего не получилось. подскажите пожалуйста. как выйти из ситуации