Hallo an alle.
Es existiert eine Tabelle, die folgende Spalten besitzt:
user_id = ID des Benutzers
user_nick = Nickname des Benutzers
user_bday = sein Geburtstag (im Format JJJJ-MM-TT)
user_plz = seine PLZ (steht 5-stellig drin, es werden aber nur die ersten beiden dargestellt)
user_gender = sein Geschlecht ("m" oder "w")
srch_gender = Geschlecht des potentiellen Partners ("m" oder "w")
srch_plz = der Postleitzahlbereich des Gesuchten (0 - 9)
srch_agefrom = (Alter von)
srch_ageto = (Alter bis)
user_visible = (0 bedeutet "Profil versteckt", 1 bedeutet "Profil nicht versteckt"
Der Nutzer legt in den srch_ - Spalten seine Suchkriterien ab, damit er diese nicht immer neu eingeben muss und diese sich sowieso so gut wie nie ändern.
Die SQL-Anweisung soll(te) jetzt die Einträge auslesen, wo beispielsweise user_gender und srch_gender gleich sind, sprich: Die Spalten innerhalb einer Tabelle gegenvergleichen (wenn soetwas überhaupt geht).
Ich vermute, dass ich LEFT JOIN benutzen muss, was ungefähr so aussehen müsste:
Habe ich, was die SQL-Anweisung betrifft, richtig vermutet? Ich weiß, ich könnte es ja einfach mal ausprobieren, aber das beantwortet dann meine Frage nicht: Kann man Spalten EINER Tabelle in einer SELECT-Anweisung miteinander vergleichen?
Danke im voraus.
Innuendo
Es existiert eine Tabelle, die folgende Spalten besitzt:
user_id = ID des Benutzers
user_nick = Nickname des Benutzers
user_bday = sein Geburtstag (im Format JJJJ-MM-TT)
user_plz = seine PLZ (steht 5-stellig drin, es werden aber nur die ersten beiden dargestellt)
user_gender = sein Geschlecht ("m" oder "w")
srch_gender = Geschlecht des potentiellen Partners ("m" oder "w")
srch_plz = der Postleitzahlbereich des Gesuchten (0 - 9)
srch_agefrom = (Alter von)
srch_ageto = (Alter bis)
user_visible = (0 bedeutet "Profil versteckt", 1 bedeutet "Profil nicht versteckt"
Der Nutzer legt in den srch_ - Spalten seine Suchkriterien ab, damit er diese nicht immer neu eingeben muss und diese sich sowieso so gut wie nie ändern.
Die SQL-Anweisung soll(te) jetzt die Einträge auslesen, wo beispielsweise user_gender und srch_gender gleich sind, sprich: Die Spalten innerhalb einer Tabelle gegenvergleichen (wenn soetwas überhaupt geht).
Ich vermute, dass ich LEFT JOIN benutzen muss, was ungefähr so aussehen müsste:
PHP-Code:
SELECT u.user_id, u.user_nick, u.user_bday, LEFT(u.user_plz, 2), u.user_gender, u.user_visible
s.srch_gender, s.srch_plz, s.srch_agefrom, s.srch_ageto
FROM user u
LEFT JOIN user s
WHERE u.user_id!='".$_SESSION['user_id']."' # wichtig, damit nicht der eigene Eintrag mitgeprüft wird
AND u.user_visible='1'
AND DATE_FORMAT(u.user_bday, '%Y') <= s.srch_agefrom AND DATE_FORMAT(user_bday, '%Y') >= s.srch_ageto
AND LEFT(u.user_plz, 1) = s.srch_plz
AND u.user_gender = s.srch_gender
ORDER BY u.user_nick
Danke im voraus.
Innuendo
Kommentar