2009-05-06 13 views
1

Ich versuche, zwei Tabellen zu verbinden; Der Zweck ist die Suche und Anzeige von Ereignisinformationen für einen Künstler, der vom Benutzer eingegeben wurde.Frage zum Verbinden von zwei MySQL-Tabellen

Die Tabellen sind wie folgt:

Künstler Tabelle: [id], [name]

Ereignistabelle: [id], [KUENSTLER_ID], [venue_name], [Stadt], [ Zustand], [Datum], [Zeit]

Ich habe eine Suchmaschine erstellt, aber was ich tun möchte ist, wenn ein Künstlername in das Textfeld eingegeben wird, wird der Code in meine Datenbank gehen und durchsehen die artist-Tabelle, um zu sehen, welcher Name eingegeben wurde, und dann die ID, die mit dem eingegebenen Namen übereinstimmt, und dann die Ereignistabelle aufrufen, um die distinct artist_id a zu finden nd zeigen alle Ereignisinformationen für den bestimmten Künstler an, der eingegeben wurde.

Ich würde wirklich gerne Hilfe mit wie das zu tun, und ich bin nicht der größte dabei, aber ich versuche es! Danke :)

Antwort

6
SELECT * 
FROM artist 
    LEFT JOIN events 
     ON artist.id = events.artist_id 
WHERE artist.name = 'your search text' 
+0

Nicht für meine eigene Antwort zu stumpf ... Aber vorausgesetzt, eine ziemlich normalisierte Datenbank, wird dies mehr Daten zurückgeben, als unbedingt notwendig ist. Immer noch +1, um strukturell gesund zu sein. Achten Sie auch auf die Eingabeüberprüfung für das Bit "Ihre Suchtext". SQL Injection wartet darauf, dort zu passieren. – Adrien

+0

@Adrien, Sie haben wahrscheinlich recht, aber ich nahm an, dass sie auch die Künstlerdetails für die Anzeige in der Benutzeroberfläche oder was auch immer wollen, daher die "SELECT *" und die "LINKE JOIN". – LukeH

+0

@Luke: Einverstanden, daher der Vorspann von mir. Ich wurde beschuldigt, das Problem (vor allem Hausaufgaben) von Zeit zu Zeit zu überdenken. :) – Adrien

3
select e.venue_name, e.city, e.state, e.date, e.time 
from artist_table a 
    join events_table e 
    on a.id = e.artist_id 
where a.name = @userInput 

oder so etwas ... Oder fehle ich etwas? Ist das eine Hausaufgabenfrage?

+0

+1 von mir - der Punkt geht an die schnelle. 8) – duffymo

+0

Ja, es ist ein Hausaufgabenprojekt, das morgen fällig ist:/ – Holly

0
select a.name, e.* 
from artist as a 
    left join events on(a.id - e.artist_id) 
     where a.name like '%$someinput%'

gerade im Fall müssen Sie nicht Namen genaue Übereinstimmung finden wollen.

Ich versuche nur zu helfen. und es ist sicher, ich bin nicht toll in diesem , aber ich will helfen, da es für mich auch zu kompliziert ist