Hi phpBBler,
ich hab ein Problem mit dem MySQL Befehl "DISTINCT", der doppelte Einträge überspringt. Nun möchte ich aber nicht nur eine Zellen auslesen, sondern noch weitere Zellen.
Meine Idee, die nunmal nicht funktioniert, war:
$query = "SELECT distinct(column1) , column2 FROM testtable";
Jedoch ist es dann wie jede andere SQL Abfrage.
------------
Für Tester...
<?php
$link = mysql_connect("localhost","root","");
mysql_select_db("testing", $link);
$query = "SELECT distinct(column1) , column2 FROM testtable";
$result = mysql_query($query, $link);
while($row = mysql_fetch_object($result)) {
echo $row->column1 ." - ". $row->column2 ."<br>";
}
?>
CREATE TABLE testtable (
id int(6) NOT NULL auto_increment,
column1 varchar(10) NOT NULL default '',
column2 varchar(10) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM;
INSERT INTO testtable VALUES (1, 'w1c1', 'w1c2');
INSERT INTO testtable VALUES (2, 'w1c1', 'blabla');
INSERT INTO testtable VALUES (3, 'blabla', 'jojojetzt');
DISTINCT
- D@ve
- Ehemaliges Teammitglied
- Beiträge: 3842
- Registriert: 28.08.2002 19:33
- Wohnort: Bretzfeld
- Kontaktdaten:
Also so ganz richtig doll verstanden habe ich das Problem nicht...
Du willst zwei Spalten auslesen und jeweils die doppelten Einträge rausschmeissen?
DISTINCT ist immer auf ein komplettes Tupel bezogen. Nur eine Spalte abzusondern würde auch keinen Sinn machen wenn Du zB die Tabelle:
Wenn ich Dich richtig verstanden habe willst Du alle Spalten wo zB "bla" drinsteht über Distinct rausschmeißen. Die Frage ist halt welchen Wert er dann fpür Spalte 2 drin lassen soll 01 oder 24... von daher wäre da kein Sinn drin sondern nur wenn man eindeutig doppelte Tupel wie blabla/22 hat.
Ansonsten probier mal einfach am Schluuß GROUP BY column1 das Ordnet das Ergebnis nach der Spalte, vielleicht hilft Dir das weiter...
Gruß, Dave[/code]
Du willst zwei Spalten auslesen und jeweils die doppelten Einträge rausschmeissen?
DISTINCT ist immer auf ein komplettes Tupel bezogen. Nur eine Spalte abzusondern würde auch keinen Sinn machen wenn Du zB die Tabelle:
Code: Alles auswählen
column1 | colum2
-----------------
bla | 01
-----------------
blub | 32
-----------------
bla | 24
-----------------
blabla | 22
-----------------
blabla | 22
Ansonsten probier mal einfach am Schluuß GROUP BY column1 das Ordnet das Ergebnis nach der Spalte, vielleicht hilft Dir das weiter...
Gruß, Dave[/code]
There are only 10 types of people in the world: Those who understand binary, and those who don't
Es gibt eine Lösung, und zwar wie Dave schon gesagt hat GROUP BY. http://www.mysql.com/doc/de/SELECT.html http://www.mysql.com/doc/en/GROUP-BY-Functions.html .Gast hat geschrieben:Aber anscheinend gibts dafür keine Lösung
Wer ist "alle"? Es hatte doch erst einer geantwortet. Und wieso vom Thema abweichen?Gast hat geschrieben:weil alle vom Thema abweichen wollen.