多表 SQL 交叉引用搜索难度


Multiple Table SQL Cross-Reference Search Difficulty

我的数据库中有三个表;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 支付

001

001 $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%'