SkarreMedlem sedan apr. 20012 427 inlägg Jag undrar hur/om jag kan modifiera nedanstående simpla SQL-fråga till att hämta värden ur två kolumner samtidigt som jag räknar hur många poster som hämtas.
"SELECT COUNT(*) FROM albums WHERE userid = 1"
Jag vill samtidigt ha med "artistname" och "albumtitle", och eftersom jag inte är speciellt duktig på SQL så försökte jag med följande fråga som inte fungerar.
"SELECT COUNT(*), artistname, albumtitle FROM albums WHERE userid = 1"
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[TCX][MyODBC]Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause
@ndersMedlem sedan juni 200032 969 inlägg Du måste ha med alla vanliga fält i GROUP BY.
"SELECT COUNT(*), artistname, albumtitle FROM albums WHERE userid = 1 GROUP BY artistname, albumtitle"
Red: eller vill du ha totala antalet? I så fall får du göra det med en subquery.
"SELECT artistname, albumtitle, (SELECT COUNT(*) FROM albums WHERE userid = 1) AS Antal FROM albums WHERE userid = 1"
Mvh,
SkarreMedlem sedan apr. 20012 427 inlägg Det jag vill åstadkomma är att få fram hur många poster med ett visst användar-ID som finns i tabellen och samtidigt hämta "artistname" och "albumtitle" ur dessa poster. Jag antar att jag då ska använda det sista av dina förslag, @nders men jag får då följande felmeddelande:
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E09)
[TCX][MyODBC]You have an error in your SQL syntax near 'SELECT COUNT(*) FROM albums WHERE userid = 1) As Antal FROM albums WHERE userid ' at line 1
LarsGMedlem sedan dec. 200012 464 inlägg Mysql har inte stöd för den typen av frågor.
Du får ställa en fråga utan count. Du kan antingen räkna antalet i klienten eller så ställa en separat fråga med count.
SkarreMedlem sedan apr. 20012 427 inlägg Vilken puckad DBMS. Tack för hjälpen i alla fall! :)
@ndersMedlem sedan juni 200032 969 inlägg Jag missade att du körde MySQL. Jag ber om ursäkt. :)
Mvh,