Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
DISTINCT bei mehrfach SELECT ? [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
DISTINCT bei mehrfach SELECT ?


 
petro_0
15-03-2007, 15:48 
 
Hallo,

hab mal eine Frage.

Kann ich einen DISTINCT auf eine Spalte durchführen, wenn ich ein mehrfach SELECT habe?

Will heisen:


SELECT DISTINCT a.caseID, a.beginn, b.caseID, b.casestatusID, c.casestatusID, c.casestatus
FROM `Bearbeitung` AS a
JOIN `Status` AS b ON a.caseID = b.caseID
JOIN `Casestatus` AS c ON b.casestatusID = c.casestatusID
WHERE DATE(a.beginn) <= DATE(?)
AND c.casestatus LIKE 'Closed%' OR '%Abgewiesen%'";


Ich möchte also gerne, das NUR auf "a.caseID" DISTINCT durchgeführt wird und die anderen select unbeachtet bleiben.

Wenn ich die Query so wie oben beschrieben laufen lassen, bekomme ich nicht das gewünchte Ergebnis.

Wer weis Rat?

Geht das nur im eimem doppelselect oder kann ich es ähnlich wie oben lösen?

Danke..

 
asp2php
15-03-2007, 15:50 
 
distinct filtert mehrfach vorkommenen "Zeilen", was willst du eigentlich?

 
petro_0
15-03-2007, 15:57 
 
Ich möchte genau das und zwar soll NUR a.caseID gefiltert werden.

Wie mach ich das? Habs auc hschon per AS versucht...

 
case
15-03-2007, 16:01 
 
das würde vor allen dingen garkeinen sinn machen


gehen wir mal davon aus du hast 2 spalten in einem select bekommst folgende zeilen zurück:

id,irgendwas
----------------
1,2
1,3
1,4
1,5
1,6
1,7
1,8

so nun willst du so wie du gesagt hast NUR ein Distinct auf die ID und nicht auf "irgendwas" machen


was soll dir denn dann bei "irgendwas" zurückgegeben werden? Eine Zufallszeile?

 
petro_0
15-03-2007, 16:05 
 
nein anders.

die caseID gibt es mehrfach und ich brauche sie jeweils nur einmal!

die caseID wird dann weiter verarbeitet... aber woanders....

 
case
15-03-2007, 16:13 
 
Ich verstehe das immer noch nicht so richtig.

wenn du einfach ein SELECT DISTINCT benutzt, so werden alle doppelten zeilen rausgeworfen und das ist doch genau das, was du willst. Da kommt auch jede caseID nur einmal vor.

es sei denn, in Status.caseId kann mehrfach das gleiche drinstehen. Dann würde es aber keinen Sinn mehr machen jede caseID nur einmal abzufragen, weil ja verschiedene sachen dazugejoint werden.

 
petro_0
15-03-2007, 16:18 
 
naja aber genau das ist ja meine befürchtung, dass in den anderen spalten durch die joins doppelte daten gelöscht werden und ich am ende dann nicht mehr genau das habe, was ich will.

...den es ist nämlich so, mit dem ergebnis aus dem DISTINCT select mache ich dann ein Update auf die Ermittelten caseID in einer anderen Tabelle...

...ich kanns eben leider vorhin nicht testen, da bei dem Update mehrere 1000 Datensätze getroffen sein werden.

 
asp2php
15-03-2007, 16:19 
 
Datenbanktabellen sind Matrix, daher sind Abfragenergebnisse auch Matrix, hast du auch überlegt, bevor du so ein Unsinn verlangt?

 
case
15-03-2007, 16:21 
 
Des weiteren gibt es auch Backups

 
petro_0
15-03-2007, 16:27 
 
Also mein Problem ist einfach, ich bin übervorsichtig was Datenbank Änderungen angeht.

Also ich versuch jetzt mal raus zu finden, was mein DISTINCT aller SELETC`s raus kommt.

Wird schon klappen, wenn nicht erhöht sich der UPDATE aufwand einfach um den Faktor 8 (circa).

Wird die DB schon vergraften....

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:26 Uhr.