有三个表Master,Regular和Customer。
我将MasterI和Regular中的ControlId保存在客户主数据中。我想从客户记录中获取Master的资料。
使用下面的查询。我可以从常规获得MasterID但我想要个人资料。
查询
select * from customer where refId='R000003'
(select ControlId from regular where LicenseId='R000003')
结果
主表
常规表
我的查询是..
SELECT Customer.CustomerId, Regular.LicenseId, Regular.ControlId,
Master.FullName, Master.profile
FROM Customer INNER JOIN
Regular ON Customer.RefId = Regular.LicenseId INNER JOIN
Master ON Regular.ControlId = Master.MasterId
WHERE (Customer.RefId = 'R000003')
但它显示了Regural只有我想要Masters记录......
答案 0 :(得分:0)
select regular.ControlId, master.profile
from regular r inner join master m ON (r.controlId = m.masterId)
where regular.LicenseId='R000003'
答案 1 :(得分:0)
发布数据图片无济于事。没人打算输入。 粘贴样本。
答案 2 :(得分:0)
我猜猜RefId
和LicenseId
互相引用。我想这是你想要的查询:
select c.*, m.profile
from customer c join
regular r
on c.refId = r.LicenseId join
master m
on r.controlId = m.MasterId;
我建议你修理你的桌子。不同表中的连接键应具有相似的名称,因此您知道它们排成一行。事实上,我几乎总是将我的连接键命名为“Id”,因此这个查询看起来更像是:
select c.*, m.profile
from customer c join
regular r
on c.CustomerId = r.CustomerId join
master m
on r.MasterId = m.MasterId;