DISTINCT für zwei Werte

EM-Autotechnik

Erfahrenes Mitglied
Hallo zusammen!

Möchte zwei Spalten aus meiner DB auslesen.
Beide Spalten sollen mit der Funktion 'DISTINCT' abgefragt werden.
PHP:
$sql = tep_db_query("select distinct spalte1, spalte2 from tabelle");
Kann mir einer weiter helfen?
Danke!

MfG Sebastian
 
Macht DISTINCT doch. Es sorgt dafür, dass keine doppelten ROWS zurückgegeben werden.

Was genau willst Du tun? Poste doch mal die Strucktur und Beschreibe das gewünschte Ergebniss rein formal. Ich nehm mal an, der Syntax soll für MySQL sein ... wenn ja vor der 4.0x oder nach 4.0 ?

Chris
 
SQL Anweisung

Hallo!

Version: MySQL 3.23.56

Also habe folgenden PHP-Script.

PHP:
$cartyp_array = array(array('id' => '', 'text' => TEXT_NONE));
    $cartyp_query = tep_db_query("select distinct cartyp_name, cartyp_id from Hersteller order by cartyp_name");
    while ($cartyp = tep_db_fetch_array($cartyp_query)) {
      $cartyp_array[] = array('id' => $cartyp['cartyp_id'],
                                     'text' => $cartyp['cartyp_name']);
    }

Bekomme trotzdem noch doppelte 'cartyp_name'- Werte...
Liegt wohl daran das 'cartyp_id' immer einen anderen Wert in der DB hat.
wenn jetzt die while Funktion die 'cartyp_id'- Werte ausliest, werden immer die dazu gehörigen 'cartyp_name' ausgelesen (ins array eingelesen).
Und somit 'distinct' umgangen.
kann ich mir nur so erklären...

Hast Du eine andere Erklärung?
Bzw. eine Lösung?

Danke!

MfG Sebastian
 
Hallöchen!

Ich habe das exakt gleiche Problem wie "EM-Autotechnik".
Leider lässt es sich bei mir nicht über das group by lösen, da ich Access 2003 verwende und ich nur gruppieren kann wenn ich alle in der select Anweisung angegebenen felder auch ins group mit hineinschreibe. Das bedeutet dann aber, dass das group element wirklt wie ein distinct.

Was kann ich noch tun Ich verzweifle schon halb!
 
gerne doch!

ID Titel Sprache1 Sprache2 Sonstiges
==========================================
1 AkteX deutsch englisch blabla
2 Museum deutsch blabla
3 Museum englisch blabla
4 Zoo deutsch blabla
5 Kino englisch blabla
.
.

Daraus würde ich gerne per SQL eine Abfrage erstellen die mir das liefert:

ID Titel Sprache1 Sprache2 Sonstiges
==========================================
1 AkteX deutsch englisch blabla
2 Museum deutsch blabla
4 Zoo deutsch blabla
5 Kino englisch blabla
.
.

Sprich: jeder Titel soll nur einmal vorkommen, und der Rest soll erhalten bleiben. Die Datenbankstruktur ist sicherlich daran Schuld, dass ich verzweifle, aber ich weis keinen besseren Weg!
 
Moin
PHP:
SELECT * FROM `Tabelle` GROUP  BY Titel ORDER BY ID

SQL-Abfrageergebnis
Host: localhost
Datenbank: db68010114
Erstellungszeit: 30. Dezember 2003 um 09:16
Erstellt von: phpMyAdmin 2.5.1
SQL-Befehl: SELECT * FROM `test` GROUP BY Titel ORDER BY ID ;

ID Titel Sprache1 Sprache2 Sonnstiges
1 AkteX deutsch english blabla
2 Museum deutsch blabla
4 Zoo Deutsch blabla
5 Kino english blabla

greetz

Ultrasonic
 
Zuletzt bearbeitet:
Dachte ich mir auch schon!

Leider okmmt folgende Fehlermeldung!

Mit '*' ausgewählte Felder können nicht gruppiert werden.

Ich kann auch nur gruppieren, wenn ich in der Gruppe alle ausgewählten Felder angebe!

System ist WinXP mit Access 2003!
 

Neue Beiträge

Zurück