|
Geschrieben am: Sa 4.02.2006, 21:57
|
|
|
AyomRank 1 ![]() ![]() Gruppe: Member (inaktiv) Beiträge: 0 Mitglied seit: -- |
Hallo,
Diese Abfrage erzielt nicht das gewünschte Ergebnis: "SELECT COUNT( t.text),COUNT( k.text) FROM texte t, kommentare k where id=1 group by t.text" $rs[0] und $rs[1] sind beide gleich dem Produkt der Anzahl gefundener Datensätze aus beiden Tabellen. "SELECT COUNT(distinct t.text),COUNT(distinct k.text) FROM texte t, kommentare k where id=1 group by t.text" liefert nur ob ein Datensatz in einer Tabelle vorkommt. (0 oder 1 oder gar nichts) Das erwünschte Ergebnis wäre aber die Anzahl Datensätze in texte und die Anzahl Datensätze in kommentare. Weiss jemand, wie ich ohne Unterabfrage dieses Resultat erreiche? Gruss Tümmel |
![]() |
| jAuer Jürgen Auer - freiberufl. Programmierer |
#2 Geschrieben am: So 5.02.2006, 00:13 (+02:16)
|
||
|
AyomRank 9 Gruppe: Experten Entwicklung Beiträge: 2302 Mitglied seit: 4.02.2006 |
Solange beide Tabellen gemeinsam im From-Abschnitt stehen, werden sie auch gemeinsam ausgewertet. Also trennen:
und die zwei Zeilen dann nach dem Wert der ersten Spalte unterscheiden oder die durch OrderBy festgelegte Reihenfolge nutzen. -------------------- Web-Anwendung 3.0: Ein Online-Kalender für Termine vieler Filialen.
server-daten - die Single-Data-Solution: Web-Datenbanken als Online - CRM - Lösung. Ihre Geschäftsprozesse entscheiden, was Ihre Online-Datenbank macht. Sie konzentrieren sich auf Ihr Kerngeschäft - die Datenbank funktioniert. |
||
![]() |
|
#3 Geschrieben am: So 5.02.2006, 02:00 (+01:47)
|
|
|
AyomRank 1 ![]() ![]() Gruppe: Member (inaktiv) Beiträge: 0 Mitglied seit: -- |
Danke,
Genauso hab ich's jetzt auch bewerkstelligt und mich durch die anschliessende Sortierung gequält. (6 Zeilen Code in 3 Stunden.) Es sind noch ein paar mehr Parameter in den Abfragen. Dabei kann man ja echt zum mysql-Hasser werden. Gruss Tümmel |
![]() |
| QBFinest braindust media |
#4 Geschrieben am: Mi 8.02.2006, 20:07 (+3d 18:06)
|
![]() AyomRank 2 ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 12 Mitglied seit: 8.02.2006 |
Ich gehe mal von PHP aus, da hättest du anstatt COUNT() in MySQL auch einfach die Funktion mysql_num_rows benutzen können.
-------------------- Hey! It compiles! Ship it!
|
![]() |
| jAuer Jürgen Auer - freiberufl. Programmierer |
#5 Geschrieben am: Mi 8.02.2006, 23:46 (+03:39)
|
||
|
AyomRank 9 Gruppe: Experten Entwicklung Beiträge: 2302 Mitglied seit: 4.02.2006 |
QBFinest schrieb:
@QBFinest, das ist ein Vorschlag, der gehört zur Rubrik 'Die zehn größten Fehler beim Zugriff auf Datenbanken' Eine Datenbank ermittelt die Zahl der Datensätze über den Index und liefert eine Zeile zurück. Stattdessen alle Datensätze exportieren und sie clientseitig (vom Webdienst) zählen lassen ist gruselig. -------------------- Web-Anwendung 3.0: Ein Online-Kalender für Termine vieler Filialen.
server-daten - die Single-Data-Solution: Web-Datenbanken als Online - CRM - Lösung. Ihre Geschäftsprozesse entscheiden, was Ihre Online-Datenbank macht. Sie konzentrieren sich auf Ihr Kerngeschäft - die Datenbank funktioniert. |
||
![]() |
| QBFinest braindust media |
#6 Geschrieben am: Do 9.02.2006, 00:06 (+00:19)
|
![]() AyomRank 2 ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 12 Mitglied seit: 8.02.2006 |
Da würde ich mal ganz klar mit JEIN antworten. Wenn man die Datensätze hinterher noch benötigt ist es durchaus sinnvoll wegen des einfacheren Handlings die Funktion mysql_num_rows zu verwenden. Dieser Thread ist ja der eindeutige Beweis dafür, dass gerade Datenbank Anfänger mit COUNT() Probleme haben. Wer nur die Anzahl der Datensätze wissen will sollte jedoch schon zu COUNT() greifen.
-------------------- Hey! It compiles! Ship it!
|
![]() |
|
#7 Geschrieben am: Do 9.02.2006, 00:40 (+00:34)
|
|||
|
AyomRank 1 ![]() ![]() Gruppe: Member (inaktiv) Beiträge: 0 Mitglied seit: -- |
Hallo QFinest, Die Idee mysql_num_rows zu benutzen ist in dem Fall wirklich nur subobtimal. Daan müsste zwei myqsl_queries erstellen und falls man hinterher noch Daten benötigt, wie z.B. in "select count( t.text),t.text,t.time,1 from `text1` t where' group by t.text,h.time union select count(k.text),k.k.text,k.time,2 from `text2` k ) group by h.text,h.time wäre das handling mit 2 Datensätzen und mysql_num_rows nicht nicht bedeutend langsamer, sondern auch noch schwieriger, da der 2. Datensatzcursor jedesmal mit mysq_data_seek bewegt werden müsste. Ich bin von sql gewohnt, Funktionen auch in die where und group by Clause setzen zu können. Da hat mysql wirklich noch erheblich Verbesserungsbedarf. Gruss Tümmel |
||
![]() |
| jAuer Jürgen Auer - freiberufl. Programmierer |
#8 Geschrieben am: Do 9.02.2006, 00:56 (+00:15)
|
||
|
AyomRank 9 Gruppe: Experten Entwicklung Beiträge: 2302 Mitglied seit: 4.02.2006 |
Einfach ein leistungsfähigeres Backend verwenden. Dann geht:
Sprich: Zwei zählende Unterabfragen direkt als Ausdruck zusammenaddieren, das liefert die eine Zelle mit dem gewünschten Wert zurück. PS: Oben war nirgends die Rede davon, daß Einzelzeilen benötigt werden. -------------------- Web-Anwendung 3.0: Ein Online-Kalender für Termine vieler Filialen.
server-daten - die Single-Data-Solution: Web-Datenbanken als Online - CRM - Lösung. Ihre Geschäftsprozesse entscheiden, was Ihre Online-Datenbank macht. Sie konzentrieren sich auf Ihr Kerngeschäft - die Datenbank funktioniert. |
||
![]() |
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
Trackback-Url: http://www.ayom.com/track/t/10481
![]() |
![]() ![]() ![]() |
| Themen Titel | Autor | Views | Antworten | Letzte Aktion |
| Datensätze / Projekt zu verkaufen | omc | 222 | 3 | Di 2.09.2008, 16:12 |
| 30.500 DOI Datensätze | Azrael | 168 | 2 | Sa 2.08.2008, 12:30 |
| MySQL Abfrage von zwei Tabellen | webdoktor | 220 | 6 | Do 31.07.2008, 15:26 |
| 52.000 DOI Datensätze | yoopi | 278 | 0 | Sa 5.07.2008, 20:41 |
| 33.000 DOI Datensätze | yoopi | 137 | 0 | Sa 3.05.2008, 11:17 |
| (S) Datensätze & Anschriften | R3dix | 317 | 7 | Mi 23.04.2008, 19:14 |
| Verkaufe Datensätze aus Gewinnspiele | yoopi | 298 | 1 | Di 22.04.2008, 19:38 |
| MySQL Ausgabe zwei Tabellen | Brian Folte | 245 | 5 | Do 17.04.2008, 12:16 |
| PHP Tabellen <tr> einfügen | Brian Folte | 266 | 5 | Di 15.04.2008, 15:17 |
| Anzahl Posts auf Startseite eines Blogs | hansolo999 | 157 | 0 | Di 4.03.2008, 11:55 |
Anzeige - [Interessiert an einer Anzeige?]














