我的数据库中有三个表。 WORKER_DETAIL,STORE_WORKER和STORE_NAME。每个表中的条目包括:

对于WORKER_DETAIL(4个字段=工作人员序列号,姓名,生日,性别):


  WSN名称生日性别
  
  001 John 1/1/1964男
  
  002戴夫2/2/1980男
  
  003 Jane 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工作的John薪水为$ 50)
  
  003001 $ 40(在StoreA工作的简(Jane)获得$ 40的报酬)
  
  002003 $ 60(在StoreC工作的Dave薪水为$ 60)


我当前正在制作一个搜索表单,该表单将允许用户输入Worker的名称。然后,搜索表单将使用输入名称,将其与相应的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子句将工作程序名称与输入的工作程序名称进行比较。

10-05 22:58