2014-12-13 3 views
0

У меня есть три таблицы в моей базе данных; WORKER_DETAIL, STORE_WORKER и STORE_NAME. Записи из каждой таблицы включают в себя:Множественная таблица SQL Перекрестная ссылка Поиск Сложность

Для WORKER_DETAIL (4 поля = порядковый номер работника, имя, дата рождения, пол):

БСС Имя Дата рождения Пол

001 John 1/1/1964 Мужской

002 Dave 2/2/1980 Мужской

003 Джейн 3/3/1975 Женский

Для STORE_NAME (3 Fields = магазин порядковый номер, Название магазина, Город)

ПЛА Название города

001 StoreA Лос-Анджелес

002 StoreB Сан-Франциско

003 StoreC Майами

и последняя таблица, STORE_WORKER, объединяет две (3 fie LDS = БСС, ПЛА, Pay)

БСС ПЛА Pay

001 001 $ 50 (Джон, который работает в StoreA, платят $ 50)

003 001 $ 40 (Джейн, которая работает в StoreA , платят $ 40)

002 003 $ 60 (Дэйв, который работает в StoreC, платит $ 60)

Я в настоящее время делает форму поиска, которая позволит пользователям вводить Нам e Рабочего. Затем форма поиска примет имя ввода, сопоставит его с соответствующим WSN, возьмет WSN и сопоставит его с соответствующим SSN, возьмет SSN, затем сопоставит его с соответствующим именем магазина и городом, а затем выведет эту информацию (The Store Имя и город из таблицы STORE_NAME).

Но я не уверен, как это сделать в форме инструкции SQL. Насколько я понимаю, синтаксис SQL включает JOIN или UNION, но я не уверен, как это сделать.

ответ

0

Запрос, который Вы хотите, является объединением таблиц:

select w.wsn, ssn.name, ssn.city 
from store_worker sw join 
    worker_detail w 
    on sw.wsn = w.wsn join 
    store_name s 
    on sw.ssn = s.ssn 
where w.name = $WORKERNAME; 

Предложение where сравнивает имя на работника имени входного работника.

0
select sn.Name, sn.City from WORKER_DETAIL wd 
    join STORE_WORKER sw on wd.WSN=sw.WSN join STORE_NAME sn on sw.SSN=sn.SSN 
where wd.Name like '%Worker_name%' 
Смежные вопросы