我正在使用3个不同的SQL表。这是表格的样子:
Master Accounts
---------------
CustomerNumber PK
CompanyName
More Columns...
Bill Tos
---------------
MasterCustomerNumber FK
CompanyName
Ship Tos
---------------
MasterCustomerNumber FK
CompanyName
我想写一个MS SQL查询,它返回主帐户表中公司名称包含字符串' ama'的所有列。在三个表格中的任何一个。
这是我当前的SQL:
SELECT DISTINCT
MA.*
FROM MasterAccounts MA
LEFT JOIN BillTos BT
ON MA.CustNo = BT.MasterCustNo
LEFT JOIN ShipTos ST
ON MA.CustNo = ST.MasterCustNo
WHERE MA.CompanyName LIKE '%ama%' OR BT.CompanyName LIKE '%ama%' OR ST.CompanyName LIKE '%ama%'
我的目标是让所有主帐户中的billto或shipto公司名称包含' ama'。
答案 0 :(得分:0)
我读了你的评论,也许这会更快:
select MA.* from
MasterAccounts MA
join
(select CustNo nmb from MasterAccounts where CompanyName LIKE '%ama%'
union
select MasterCustNo nmb from BillTos where CompanyName LIKE '%ama%'
union
select MasterCustNo nmb from ShipTos where CompanyName LIKE '%ama%' ) num on (num.nmb = MA.CustNo)
如果您需要更多公司,可能会以小写字母使用公司名称......
*如果查询中出现小错误,我很抱歉 - 我读得很快......