我们如何将 AND & OR 运算符与简单连接一起使用?
How can we use AND & OR operators be used along with simple join?
我的数据库中有两个 table CustomerAddresses 和 Area.
CustomerAddresses 的列是 -
- id(主键),
- areaId(引用 table 区域的外键),
- 客户编号,
- addressLine1,
- addressLine2,
- 地标,
- 密码,
- 首选,
区域列为 -
- areaId(主键),
- 姓名,
SELECT * FROM CustomerAddresses CA, Areas A
WHERE CA.areaId = A.areaId
AND
CA.customerId = 1
AND
( CA.addressLine1 like 'd'
OR
CA.addressLine2 like 'd'
OR
CA.landmark like 'd'
OR
CONVERT(pincode, CHAR) like 'd'
OR
A.name like 'd' );
我想从 CustomerAddresses 中获取一个客户的所有地址,然后想搜索字符 'd' 是否出现在这些记录中。
查询返回空集。
这里的问题不是联接,而是您在 like
调用中缺少 d
前后的通配符这一事实:
CA.addressLine1 like '%d%' OR
CA.addressLine2 like '%d%' OR
CA.landmark like '%d%' OR
CONVERT(pincode, CHAR) like '%d%' OR
A.name like '%d%'
-- These --------------------^-^
我的数据库中有两个 table CustomerAddresses 和 Area.
CustomerAddresses 的列是 -
- id(主键),
- areaId(引用 table 区域的外键),
- 客户编号,
- addressLine1,
- addressLine2,
- 地标,
- 密码,
- 首选,
区域列为 -
- areaId(主键),
- 姓名,
SELECT * FROM CustomerAddresses CA, Areas A
WHERE CA.areaId = A.areaId
AND
CA.customerId = 1
AND
( CA.addressLine1 like 'd'
OR
CA.addressLine2 like 'd'
OR
CA.landmark like 'd'
OR
CONVERT(pincode, CHAR) like 'd'
OR
A.name like 'd' );
我想从 CustomerAddresses 中获取一个客户的所有地址,然后想搜索字符 'd' 是否出现在这些记录中。
查询返回空集。
这里的问题不是联接,而是您在 like
调用中缺少 d
前后的通配符这一事实:
CA.addressLine1 like '%d%' OR
CA.addressLine2 like '%d%' OR
CA.landmark like '%d%' OR
CONVERT(pincode, CHAR) like '%d%' OR
A.name like '%d%'
-- These --------------------^-^