Gustav: PHP/MySQL - Anzahl verschiedener Datensätze ermitteln.

Beitrag lesen

Hallo,

ich stehe vor dem Problem, dass ich zwei Tabellen habe bei denen ich jeweils verschiedene Datensätze zählen möchte. Aber es ist für mich zu kompliziert. Ich habe versucht eine Lösung zu finden, aber es war nichts für mich dabei.

Ich habe Tabelle A und Tabelle B. In diesen Tabellen Speichere ich Nachrichten. A = Nachrichten_2012, B = Nachrichten_2013. Diese Nachrichten können die Eigenschaft Gelesen = 0 oder 1 besitzen.

Aus Tabelle A möchte ich nun alle Datensätze zählen die gelesen wurden und nicht gelesen wurden, bei Tabelle b das gleiche ohne 4 Abfragen machen zu müssen in dieser Art:

$Nachrichten = mysql_query("SELECT count(*) AS 2013Ungelesen FROM Nachrichten_2013 WHERE Adressat = '". $ID ."' AND Gelesen = 0");  
$Anzahl = mysql_fetch_assoc($Nachrichten);  
echo $Anzahl['2013Ungelesen'];

bzw.

  
$Nachrichten = mysql_query("SELECT count(*) AS 2013Gelesen FROM Nachrichten_2013 WHERE Adressat = '". $ID ."' AND Gelesen = 1");  
$Anzahl = mysql_fetch_assoc($Nachrichten);  
echo $Anzahl['2013Gelesen'];

Gibt es eine Möglichkeit, dass ich diese 4 Abfragen in einer SQL Abfrage herausfinden kann, um nicht immer ein neues mysql_query aufzumachen?

Zum Beispiel in der Art:
mysql_query("SELECT count(*) AS 2013Ungelesen FROM Nachrichten_2013 WHERE Adressat = '". $ID ."' AND Gelesen = 0, SELECT count(*) AS 2013Gelesen FROM Nachrichten_2013 WHERE Adressat = '". $ID ."' AND Gelesen = 1, SELECT count(*) AS 2012Gelesen FROM Nachrichten_2012 WHERE Adressat = '". $ID ."' AND Gelesen = 1,SELECT count(*) AS 2012Ungelesen FROM Nachrichten_2012 WHERE Adressat = '". $ID ."' AND Gelesen = 0");

Hab schon an sowas gedacht:
SELECT count(2013.Adressat) AS 2013Gelesen, count(2013.Adressat) AS 2013Ungelesen FROM Nachrichten_2013 2013 WHERE Adressat = '". $ID ."' AND Gelesen = 0 - Jedoch hätte das 2013Ungelesen den gleichen Wert wie 2013Gelesen, da ich keine Ahnung habe wie ich eine zweite WHERE Klausel einführen soll. Kann mir jemand ein Beispiel geben und es ggf. erläutern? Dafür wäre ich sehr verbunden.

Danke!
Euer Gustav.

Funktioniert natürlich nicht.