2016-11-03 3 views
3

Ich mache derzeit ein System wie Tauschhandel System. die Situation so. Ein Kunde (Jasmine) muss das 'NAME'-Attribut eingeben (was er suchen muss) und das'SEEK'-Attribut eingeben (was er suchen muss). Um das Ergebnis zu erhalten, muss das Attribut 'SEEK' mit dem Attribut 'Name' eines anderen Kunden übereinstimmen und das Attribut 'SEEK' eines anderen Kunden muss mit dem Attribut 'HAVE' von Jasmine übereinstimmen.SQL-Abfragen, um die Übereinstimmungsattribute zu finden

zum Beispiel ich habe Tabellenelemente (bereits in der Datenbank)

|ITEMSID|NAME |SEEK  |USERID| 
|A01 |printer|laptop |A1 | 
|A45 |laptop |headphone|A2 | 
|AY3 |laptop |headphone|A3 | 

Zum Beispiel Jasmin hat ‚Namen‘ Kopfhörer und ‚Sucht‘ Attribut Laptop und das Ergebnis sollte so. Das Ergebnis sollte jede Möglichkeit auflisten (es kann aus mehr als eine Zeile ab, und es kann Null-Ergebnis, wenn das kein Spiel betwen ‚NAME‘ sind und ‚SEEK‘ Attribut

|ITEMSID|NAME |SEEK  |USERID| 
|AY3 |laptop |headphone|A3 | 
|A45 |laptop |headphone|A2 | 

Danke für Ihre Hilfe. das System, das ich zu sein bin entwickeln mit jsp p/s:. ich bin ein neuer Benutzer in Stackoverflow

EDIT basierend auf Kommentare:

ich habe bereits versucht, eine inner join aber das Abfrageergebnis verwendet, ist nicht spezifisch bei einer Transaktion (bedeutet die Ergebnisübereinstimmung zwischen 'Habe' und 'Suche' Attribut, hat aber alle übereinstimmenden Zeilen und keine t die Auswahl der ‚Haben‘ Attribut, das eingegeben wird):

SELECT a.NAME, a.seek,a.ITEMSID 
FROM items a 
JOIN items b ON a.NAME = b.seek AND b.NAME = a.seek 
+2

Haben Sie versucht, eine Abfrage dafür zu schreiben? Was hast du bisher versucht? Was schief gelaufen ist? – Galz

+0

Ich versuche bereits, einen inneren Join zu verwenden, aber das Abfrageergebnis ist nicht spezifisch für eine Transaktion (dh die Ergebnisübereinstimmung zwischen 'Have' und 'Seek' Attribut liest alle Zeilen und nicht das'Have' Attribut, das eingegeben wird ') – FYP

+0

SELECT a.NAME, a.seek, a.ITEMSID aus Positionen a Artikel B ON a.NAME JOIN = b.seek UND b.NAME = a.seek – FYP

Antwort

1

Basierend auf der Abfrage, die Sie versucht haben, wenn ich Ihre Anfrage richtig verstehe (nicht sicher, ob ich tun), alles, was Sie fehlt, ist die WHERE Klausel für die Eingabe.

SELECT a.name, a.seek, a.ITEMSID 
FROM items a 
JOIN items b 
    ON a.name = b.seek 
    AND b.name = a.seek 
WHERE a.name = 'input here' 
+0

tq, Ich versuche diese Abfrage bereits, aber das Ergebnis ist nicht das, was ich anvisiere, um es zu bekommen. Die Abfrage zeigt, was der erste Kunde eingegeben (in einem Beispiel Jasmine 'Name' und 'Suche' Attribut – FYP

+0

@FYP - 'Name' ist Jasmine? In Ihrem Beispiel Daten Name hatte Werte wie 'Kopfhörer' ... Bitte Beispieldaten posten und die erforderliche Probenausgabe. – Galz

Verwandte Themen