2014-12-13 91 views
0

我在我的数据库中有三个表; WORKER_DETAIL,STORE_WORKER和STORE_NAME。每个表条目包括:多表SQL交叉引用搜索难度

对于WORKER_DETAIL(4场=工人的序列号,姓名,生日,性别):

WSN姓名出生年月日性别

001约翰·1964年1月1日男

002戴夫·1980年2月2日男

003简1975年3月3日女

对于STORE_NAME(3栏=存储序列号,店铺名称,市)

SSN名市

001 StoreA洛杉矶

002 StoreB旧金山

003 StoreC迈阿密

和最后一个表STORE_WORKER将这两者结合在一起(3 fie LDS = WSN,SSN,收费)

WSN SSN收费

001 001 $ 50(约翰,谁在StoreA工作,被支付了$ 50)

003 001 $ 40(简,谁在StoreA工作,得到支付$ 40)

002 003 $ 60(戴夫,谁在StoreC工作,被支付了$ 60)

我目前做一个搜索表单,这将允许用户输入南工人的电子邮件。然后,搜索表单将采用输入名称,将其与相应的WSN进行匹配,取出WSN并将其与相应的SSN进行匹配,取出SSN,然后将其与相应的Store Name和City进行匹配,然后输出该信息(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%'