mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 25.04.2024 01:48 Benutzername: Passwort: Auto-Login

Thema: [MYSQL] Beiträge in 2. Tabelle im Ergebnis beachten. vom 23.10.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [MYSQL] Beiträge in 2. Tabelle im Ergebnis beachten.
Autor Nachricht
Backware
Threadersteller

Dabei seit: 09.12.2004
Ort: bei Köln
Alter: 38
Geschlecht: Männlich
Verfasst Di 23.10.2007 14:04
Titel

[MYSQL] Beiträge in 2. Tabelle im Ergebnis beachten.

Antworten mit Zitat Zum Seitenanfang

Hi Leute,

ich brauch MYSQL-Hilfe, bin gerade etwas am... sagen wir verzweifeln ^^.

UND ZWAR:

tabelle 1
threadid, foo

tabelle 2
postid, threadid, title, content, bar

diese beiden tabellen umschreiben ein forum. und zwar ist in tabelle 1 der jeweilige thread erfasst. und in tabelle 2 sind alle posts dazu erfasst.

ich möchte nun alle threads auslesen:

Code:
SELECT one.`threadid` FROM `tabelle_1` AS one


dabei solls aber nicht bleiben, ich will nun noch auflisten, wieviel posts es dazu gibt:

Code:
SELECT one.`threadid`, COUNT ( two.`threadid` ) AS anzahl FROM `tabelle_1` AS one, `tabelle_2` AS two WHERE one.`threadid` = two.`threadid`


sofern ich das habe, wird nach anzahl sortiert.

Das problem ist nun: wenn KEINE posts in einem thread vorhanden sind, wird der thread an sich nicht mit 0 Posts gelistet, sondern garnicht ins Statement genommen. und das will ich nicht *bäh* ich will alle anzeigen. habt ihr da schonmal erfahrung mit gemacht?

wäre glücklich über konstruktive beiträge.

edit: will euch noch drauf hinweisen, dass das beispiel etwas verfremdet ist und die aufgabenstellung so 100% zutreffen muss... also sowas wie "mimimi wenn in einem thread kein post ist, gibts auch keinen thread" oder sowas.... gilt nicht... dann will ich halt mit 0 Posts auflisten..... so, da habt ihrs...


Zuletzt bearbeitet von Backware am Di 23.10.2007 14:05, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
m
Moderator

Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Di 23.10.2007 16:05
Titel

Antworten mit Zitat Zum Seitenanfang

Left Join oder nicht?
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
Sarky

Dabei seit: 29.06.2002
Ort: Düsseldorf
Alter: 42
Geschlecht: Männlich
Verfasst Di 23.10.2007 16:07
Titel

Antworten mit Zitat Zum Seitenanfang

Du musst Dein Query etwas umstellen und anstelle eines SELECT über 2 Tabellen mit einem LEFT JOIN arbeiten.

Ungeprüft:
Code:

SELECT one.threadid, COUNT(two.threadid) AS anzahl
LEFT JOIN tabelle_2 AS two ON one.threadid = two.threadid
FROM tabelle_1 AS one
  View user's profile Private Nachricht senden
Backware
Threadersteller

Dabei seit: 09.12.2004
Ort: bei Köln
Alter: 38
Geschlecht: Männlich
Verfasst Mi 24.10.2007 10:11
Titel

Antworten mit Zitat Zum Seitenanfang

Sarky hat geschrieben:
Du musst Dein Query etwas umstellen und anstelle eines SELECT über 2 Tabellen mit einem LEFT JOIN arbeiten.

Ungeprüft:
Code:

SELECT one.threadid, COUNT(two.threadid) AS anzahl
LEFT JOIN tabelle_2 AS two ON one.threadid = two.threadid
FROM tabelle_1 AS one


ich hab jetzt n neues problem *bäh*

auslesen klappt. vielen dank für den hinweis, war irgendwie auf der leitung gestanden....

das folgende problem wird ihnen präsentiert von: BACKWARE Grins

Code:
SELECT a.`threadid` FROM `my_threads` AS a LEFT JOIN `my_posts` AS b ON a.`threadid` = b.`threadid` WHERE a.`title` IS NOT NULL AND ( a.`title` LIKE '%a%' OR a.`text` LIKE '%a%' ) GROUP BY a.`threadid` ORDER BY a.`status` ASC


das ist mein query, der funzt auch wunderbar... nur will ich jetzt noch nach "posts-Anzahl" sortieren... dabei hatte ich 2 varianten:

Code:
SELECT a.`threadid`, COUNT ( b.`threadid` ) AS anzahl FROM `my_threads` AS a LEFT JOIN `my_posts` AS b ON a.`threadid` = b.`threadid` WHERE a.`title` IS NOT NULL AND ( a.`title` LIKE '%a%' OR a.`text` LIKE '%a%' ) GROUP BY a.`threadid` ORDER BY anzahl ASC, a.`status` ASC


ODER:

Code:
SELECT a.`threadid` FROM `my_threads` AS a LEFT JOIN `my_posts` AS b ON a.`threadid` = b.`threadid` WHERE a.`title` IS NOT NULL AND ( a.`title` LIKE '%a%' OR a.`text` LIKE '%a%' ) GROUP BY a.`threadid` ORDER BY COUNT ( b.`threadid` ) ASC, a.`status` ASC


beides funzt nicht.... fehlermeldung:

Zitat:
Error Code : 1146
Table 'mysql.proc' doesn't exist
(0 ms taken)


Ich werd echt zum Fuchs hier.... Ich steh scheinbar grad voll aufm schlauch oder bin einfach nur blöd.... MEINE FRESSE ...
für eure hilfe wäre ich euch sehr dankbar.
* Ich bin unwürdig * * Ich bin unwürdig * * Ich bin unwürdig *
  View user's profile Private Nachricht senden
 
Ähnliche Themen mySQL nächstes Ergebnis
[PHP/MySQL] MySQL Error: 1054, falsche Tabelle ausgewählt?
[solved] / [PHP/MySQL] Ergebnis der Abfrage = 0
MySQL Tabelle
MYSQL Tabelle in HTML (php)
[MySQL] maximale Einträge Tabelle?
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.