Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从表A中选择行,其中字符串位于表B或表C中的类似列中_Sql_Sql Server - Fatal编程技术网

Sql 从表A中选择行,其中字符串位于表B或表C中的类似列中

Sql 从表A中选择行,其中字符串位于表B或表C中的类似列中,sql,sql-server,Sql,Sql Server,我有3个不同的SQL表正在使用。以下是表格的外观: Master Accounts --------------- CustomerNumber PK CompanyName More Columns... Bill Tos --------------- MasterCustomerNumber FK CompanyName Ship Tos --------------- MasterCustomerNumber FK CompanyName 我想编写一个MS SQL查询,返回主帐户表

我有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 companyname包含“ama”的所有主帐户。

我阅读了您的评论,也许这会更快:

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) 
如果你需要更多的公司,也许你可以用小写的公司名称


*如果是查询中的小错误,我很抱歉-我读得很快….

您面临的困难是什么?我正在使用当前查询查询我的数据库,但它没有返回我预期的任何结果。我觉得我的连接有点问题。它看起来正确吗?查询看起来不错。你能分享一些示例数据和你期望的结果吗?我喜欢键入
LEFT-OUTER-JOIN
,只是为了显式-但是你的查询看起来肯定能工作。您确定有包含“ama”的公司名称吗?这可能是转换问题-什么类型的[CompanyName]?您是否尝试过在
WHERE
子句中将is转换为varchar?