обьединить запросы

Статус
В этой теме нельзя размещать новые ответы.

CDParkers

Guest
обьединить запросы

Как обединить такие запросы:

PHP:
        $sql1=mysql_query("SELECT albumnum FROM nuke_topmusic_artist WHERE idartist='$idartist'") or die("Query failed : " . mysql_error());;
        $sql2=mysql_query("SELECT COUNT(*) FROM nuke_topmusic_stories WHERE idartist='$idartist'") or die("Query failed : " . mysql_error());;

        $row1=mysql_fetch_assoc($sql1);
        $row2=mysql_fetch_assoc($sql2);

        $result1=$row1['albumnum'];
        $result2=$row2['idartist'];

        $result22=count($result2);

        echo "Альбомов-> $result1 Статей-> $result22";
 

bkonst

.. хочется странного?...
Никак, если одному idartist соответствует несколько albumnum.
 

SmokyPython

Новичок
CDParkers
SELECT albumnum, COUNT(nuke_topmusic_stories.idartist) as stories FROM nuke_topmusic_artist, nuke_topmusic_stories WHERE idartist='$idartist' AND nuke_topmusic_artist.idartist=nuke_topmusic_stories.idartist GROUP BY nuke_topmusic_stories.idartist
 

bkonst

.. хочется странного?...
SmokyPython
Теперь вопрос: что будет в albumnum, если у одного артиста есть несколько альбомов?
 

Andreika

"PHP for nubies" reader
bkonst
будут несколько строк с разными albumnum и одинаковыми stores ?
 

bkonst

.. хочется странного?...
Нет. Внизу стоит GROUP BY idartist. Соответственно, будет случайный (скорее всего, добавленный первым) albumnum для этого idartist и полное количество stories во всего его альбомах.

~

Если изменить на GROUP BY idartist, albumid, в stories будет количество записей в каждом из альбомов, что отличается от второго исходного запроса.
 

bkonst

.. хочется странного?...
А из исходного запроса это неочевидно :)
Если соответствие артист/альбом 1:1 - проблем не будет. Однако в реальности такоге соотношение, как правило, не выполняется.

~

Если несколько idalbum - первый запрос выдал бы несколько записей.
 

Andreika

"PHP for nubies" reader
bkonst
может и выдал БЫ, но он очень вежливый и выдаст тока один albumnum и только одно кол-во записей во втором запросе... а потом аффтар берет из массива вместо COUNT(*) некий 'idartist' (==null) и пытается сделать некий count для него... мдя
 

CDParkers

Guest
albumnum всегда одно число так ка это не номер альбома, а количество их, уже посчитаное
Спасибо за помощь

-~{}~ 01.02.06 19:42:

Этот код не срабатывает если нет записей в stories для исполнителя, тоесть если по нему нету статей то это не работает, выдает
Query failed : Column: 'idartist' in where clause is ambiguous
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху