[英]SQL Server : select from 2 tables
我有这个T-SQL语句
select a.CODE
from MASTER..MASTERADD a, MASTER..MASTER b
where a.TELO = '18002000047'
OR a.MOBILE = '18002000047'
AND b.TPIN = '42589'
and a.code = b.code
和
select a.CODE
from MASTER..MASTERADD a, MASTER..MASTER b
where a.TELO = '18001147722'
OR a.MOBILE = '18001147722'
AND b.TPIN = '56783'
and a.code = b.code
第一条语句返回1个结果(单行)(CODE)
第二个返回“ CODE”,但重复大约9000次以上。
我究竟做错了什么?
您需要做的是添加一些括号。 您最有可能在寻找以下逻辑:
SELECT a.CODE
FROM MASTER..MASTERADD a
JOIN MASTER..MASTER b
ON a.code = b.code
WHERE (
a.TELO = '18001147722'
OR a.MOBILE = '18001147722'
)
AND b.TPIN = '56783'
看起来您在语句的WHERE部分中需要在OR周围加上括号:
SELECT
MASTERADD.CODE
FROM
MASTER..MASTERADD MASTERADD
INNER JOIN
MASTER..MASTER MASTER
ON
MASTERADD..CODE = MASTER.CODE
WHERE
(
MASTERADD..TELO = '18001147722'
OR
MASTERADD..MOBILE = '18001147722'
)
AND
MASTER.TPIN = '56783'
但是,这可能无法解决您的问题。 您有两个不同的条件(不同的电话号码和个人识别号),那么为什么不期望得到不同的结果呢?
不太重要的是,我建议您清理代码中的语法,因为它使识别问题区域和以后的逆向工程更容易实现。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.