我的数据库中有三个表;WORKER_DETAIL、STORE_WORKER和STORE_NAME。每个表中的条目包括:
对于WORKER_DETAIL(4 个字段 = 工作人员序列号、姓名、生日、性别(:
WSN姓名生日性别
001 约翰 1/1/1964 男
002 戴夫 2/2/1980 男
003 简 1975/3/3 女
对于STORE_NAME(3 个字段 = 商店序列号、商店名称、城市(
SSN名称城市
001 洛杉矶A店
002 旧金山B店
003 迈阿密C店
最后一个表STORE_WORKER将两者结合在一起(3 个字段 = WSN、SSN、Pay(
WSN SSN 支付
001001 $50 (John,在StoreA工作,得到50美元的报酬(
003 001 40 美元(在 StoreA 工作的 Jane 获得 40 美元的报酬(
002 003 60 美元(戴夫在 StoreC 工作,获得 60 美元的报酬(
我目前正在制作一个搜索表单,允许用户输入工人的姓名。然后,搜索表单将采用输入名称,将其与相应的 WSN 匹配,获取 WSN 并将其与相应的 SSN 匹配,获取 SSN,然后将其与相应的商店名称和城市匹配,然后输出该信息(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%'