Vinzenz Mai: Schwieriger Query

Beitrag lesen

Hallo,

user:
id username
1  hans
2  franz
3  ferdinand
4  klaus
5  bernd
6  Fridolin

users_friends:
userone usertwo status
1       2       1
1       5       2
1       6       1
3       4       1
2       1       1

können die Werte von userone und usertwo überhaupt identisch sein?

Ich möchte nun dynamisch alle namen haben die mit %tag anfangen aber nur von denen die freunde von hans sind(status 1 haben).

und wo ist Dein Problem?

Gegeben ist die Userid 1 von hans und der buchstabe F

Suche alle userone und usertwo wo userone=1 oder usertwo=1 und status=1,

nehme dann alle ids die !=1 sind und durchsuche Tabelle users nach den userone und usertwo ids und gebe mir die wieder die mit f% anfangen.

Nein. Warum möchtest Du diese haben? Ich bin ganz im Gegenteil der Ansicht, Du möchtest folgendes haben:

Gib mir die eindeutige Liste
    der Benutzernamen
aus
    der Tabelle user
die mit der Tabelle users_friends verknüpft ist
    über Gleichheit der Werte in den Spalten id und usertwo
wobei nur die Werte interessieren
    mit dem Wert 1 in der Spalte userone (sprich Hans)
    und dem Status 1 (d.h. Freund)
verbunden mit
der eindeutigen Liste
    der Benutzernamen
aus
    der Tabelle user
die mit der Tabelle user_friends verknüpft ist
    über Gleichheit der Werte in den Spalten id und userone(!)
wobei nur die Werte interssieren
    mit dem Wert 1 in der Spalte usertwo (sprich Hans)
    und dem Status 1 (d.h. Freund)

Wie bitte ist das möglich? geht das überhaupt mit einem Query?

Ja sicher: wie Du siehst mit einer UNION zweier Joins und einer WHERE-Klausel.
Ich gehe davon aus, dass Dein Datenbankmanagementsystem (wie z.B. DB2, Firebird, Informix, MySQL, Oracle, PostgreSQL, MS SQL Server, ...) in der vorhandenen Version diese Basis-SQL-Funktionalität unterstützt.

Freundliche Grüße

Vinzenz