У меня есть три таблицы в моей базе данных; WORKER_DETAIL, STORE_WORKER и STORE_NAME. Записи из каждой таблицы включают в себя:
Для WORKER_DETAIL (4 поля = рабочий порядковый номер, имя, день рождения, пол):
Имя WSN День рождения Пол
001 Джон 01.01.1964 Мужской
002 Дейв 2/2/1980 Мужчина
003 Джейн 3/3/1975 Женщина
Для STORE_NAME (3 поля = порядковый номер магазина, название магазина, город)
SSN Название Город
001 StoreA Лос-Анджелес
002 StoreB Сан-Франциско
003 StoreC Майами
и последняя таблица, STORE_WORKER, объединяет их (3 поля = WSN, SSN, Pay)
WSN SSN Pay
001 001 $ 50 (Джон, который работает в StoreA, получает 50 $)
003 001 40 долларов (Джейн, работающая в StoreA, получает 40 долларов)
002 003 $ 60 (Дейву, работающему в StoreC, платят 60 $)
В настоящее время я делаю форму поиска, которая позволит пользователям вводить имя работника. Форма поиска будет затем принимать входное имя, сопоставлять его с соответствующим WSN, брать WSN и сопоставлять с соответствующим SSN, брать SSN, затем сопоставлять его с соответствующим именем магазина и городом, а затем выводить эту информацию (The Store Имя и город из таблицы STORE_NAME).
Но я не уверен, как это сделать в форме оператора SQL. Насколько я понимаю, синтаксис SQL включает в себя JOIN или UNION, но я не уверен, как это сделать.
Требуемый запрос — это объединение таблиц:
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
Предложение сравнивает имя рабочего с именем рабочего ввода.
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%'