2009-05-06 2 views
1

Я пытаюсь объединить две таблицы; целью которого является возможность поиска и отображения информации о событии для исполнителя, который вводится пользователем.Вопрос о соединении двух таблиц mysql

Таблицы следующим образом:

художник таблицы: [ID], [имя]

таблица событий: [ID], [artist_id], [venue_name], [город], [ state], [date], [time]

Я создал поисковую систему, но то, что я хочу сделать, - это когда имя пользователя вводится в текстовое поле, код будет выходить в мою базу данных и будет просматривать таблицу исполнителя, чтобы увидеть, какое имя было введено, а затем захватить идентификатор, который соответствует введенному имени, а затем перейдите в таблицу событий, чтобы найти, что различные artist_id a nd отображает всю информацию о событии для определенного исполнителя, который был введен.

Мне бы очень хотелось помочь, как это сделать, и я не самый лучший из них, но я стараюсь! Спасибо :)

ответ

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

Не пень для моего собственного ответа ... Но, предполагая, что нормальная база данных, это собирается вернуть больше данных, чем это абсолютно необходимо. Тем не менее, +1 для того, чтобы быть структурно здоровым. Кроме того, следите за проверкой входных данных в бите «текст поиска». SQL Injection ждет там. – Adrien

+0

@Adrien, вы, вероятно, правы, но я предположил, что они также хотят, чтобы детали художника отображались в пользовательском интерфейсе или что-то еще, следовательно, «SELECT *» и «LEFT JOIN». – LukeH

+0

@ Luke: Согласен, отсюда и верхняя часть меня. Меня обвиняют в «чрезмерном анализе» проблемы (особенно в домашних заданиях) время от времени. :) – 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 

или что-то в этом роде ... Или я что-то упускаю? Это вопрос домашнего задания?

+0

+1 от меня - точка идет к быстрому. 8) – duffymo

+0

Да, это проект домашней работы из-за завтра:/ – Holly

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

только в случае, если вы не хотите, чтобы найти имя точное совпадение.

Просто пытаюсь помочь. и он уверен, что я не очень хорош в этом , но хочу помочь, так как сначала мне тоже слишком сложно