[MySQL] SELECT

versuch13

Erfahrenes Mitglied
Ich hänge gerade an einem Select, weiß nicht ob man das so überhaupt
lösen kann oder ob ich eventuell die Daten doch anders vorliegen haben
müßte.

Aufbau und Inhalt der Tabelle:

uid (INT), fid(INT)

uid | fid
-----------
1 | 2
7 | 1
3 | 4
5 | 1

Was ich erreichen will, ist alle "Gegenwerte" zur 1 zu erhalten.
Also 2,7 und 5.
 
SQL:
(SELECT uid AS counter FROM test WHERE fid = '1') 
UNION 
(SELECT fid AS counter FROM test WHERE uid = '1');

UNION ist zwar nicht das Schnellste, aber es funktioniert... Vielleicht gibts ja noch eine schnellere/elegantere Lösung.
 
Hey, danke schon mal dafür! Aber ein einer anderen Lösung wäre ich trotzdem
dennoch interessiert. Danke.

Gruß
 
Du könntest auch folgende machen:
SQL:
SELECT If(uid<fid, fid, uid ) FROM `test` WHERE uid=1 or fid=1
€: Unter der Vorrausetzung das ein Feld immer 1 ist.
 
€: Unter der Vorrausetzung das ein Feld immer 1 ist.

Danke, aber das mit dem "kleiner als" passt so nicht wenn ich das richtig sehe.
Und es kommt auch nicht jedesmal eine 1 vor, die Spalten enthalten immer zwei
unterschiedliche Zahlen welche jedoch mehrmals vorkommen können.

Wenn jetzt diese Daten vorliegen würden:

69 | 13
17 | 69
23 | 56
69 | 11

Hätte ich also gerne das Ergebnis: 13, 17 und 11. Also der Select von Felix Jacobi
macht schon das was ich erreichen wollte, nur falls es möglich ist hätte ich das
gerne in einem Select.

Danke trotzdem.


Edit: Ah, danke Ronaldo, das hat mich dann jetzt doch drauf gebracht.

Code:
SELECT IF(uid=69, fid, uid ) as tid FROM `wkw` WHERE uid=69 OR fid=69
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück