# DISTINCT für zwei Werte



## EM-Autotechnik (17. November 2003)

Hallo zusammen!

Möchte zwei Spalten aus meiner DB auslesen.
Beide  Spalten sollen mit der Funktion 'DISTINCT' abgefragt werden.

```
$sql = tep_db_query("select distinct spalte1, spalte2 from tabelle");
```
Kann mir einer weiter helfen?
Danke!

MfG Sebastian


----------



## XChris (17. November 2003)

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


----------



## EM-Autotechnik (17. November 2003)

*SQL Anweisung*

Hallo!

Version: MySQL 3.23.56

Also habe folgenden PHP-Script.


```
$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


----------



## melmager (17. November 2003)

> Bekomme trotzdem noch doppelte 'cartyp_name'- Werte...
> Liegt wohl daran das 'cartyp_id' immer einen anderen Wert in der DB hat.



Stimmt 

select cartyp_name, cartyp_id from Hersteller group by cartyp_name order by cartyp_nam


----------



## EM-Autotechnik (17. November 2003)

*Dankeschön!*

He Melmager

Dankeschön

genau das Ergebnis wollte ich
Vielen Dank für Deine Hilfe!

MfG Sebastian


----------



## MyKron (28. Dezember 2003)

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!


----------



## Patrick Kamin (28. Dezember 2003)

*-*

Poste mal deine Tabellenstruktur.


----------



## MyKron (29. Dezember 2003)

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!


----------



## ultrasonic (30. Dezember 2003)

Moin

```
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


----------



## MyKron (1. Januar 2004)

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!


----------



## ultrasonic (1. Januar 2004)

also als Sql geht es


----------



## MyKron (1. Januar 2004)

was heisst "als sql geht es"
Access 2003 nutzt ja auch nur SQL


----------

