Сложность поиска перекрестных ссылок в SQL по нескольким таблицам

У меня есть три таблицы в моей базе данных; 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, но я не уверен, как это сделать.

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%'
0

По вопросам рекламы [email protected]