09. oktober 2008 - 19:13Der er
21 kommentarer og 1 løsning
select count fra to forskellige tabeller?
Jeg har lidt et problem med min statistikfunktion til et site.
Kan man ikke sige SELECT COUNT(`a.*`) AS `antalAlbum`, COUNT(`b.*`) AS `antalBilleder` FROM a.Albums, b.Billeder?
Jeg får en tilbagemelding der hedder "SELECT command denied to user... for table 'Album' Er det fordi min host har spærret for dette eller er det fordi det ikke er en gyldig forespørgsel?
Ved godt man kan splitte det op i to queries, men er det ikke bedst at lave så få queries som muligt? eller er det mig der har en forkert opfattelse?
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
jeg tror grunden til at du får "denied to user" på din egen SQL er, at du forsøger at selecte fra tabellerne 'Albums' og 'Billeder' i databaserne 'a' og 'b' - hvilket du nok ikke har privileger til. Det har splazz så rettet til, men man kan ikke selecte fra mere end én tabel med mindre det er i et JOIN, eller som hrmortensen foreslår, i en eller flere subqueries
Jeg tror der er overset en hel ordinær fejl. SQL returnere: #1054 - Unknown column 'Albums.*' in 'field list' hvilket er helt korrekt, da du i din sql har skrevet `Albums.*`, og mysql behandler det som èt kolonne navn. Du kunne prøve at slette ` fra din originale sql-sætning. Du skal i hvert fald aldrig have ` rundt om både tabel og felt navne når de er sammen. Dvs `tabel.felt`er bestemt ikke det samme som tabel.felt
Men det vil ikke virke alligevel efter hensigten med flg. query, som faktisk kan køres (bemærk tabel.felt, i stedet for tabel.*): "SELECT COUNT(a.id) AS antalAlbum, COUNT(b.id) AS antalBilleder FROM Albums AS a, Billeder AS b"
Hvis der er 10 albums poster, og 5 billeder poster, vil begge COUNT's give 50, fordi alle muligheder køres igennem.
Men det er spild af tid at få til at virke, da det som sagt giver et "forkert" resultat.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.