使用And运算符和Or运算符SQL的内部联接
我正在寻找一个具有两个运算符条件的查询,比如说,我现在在表a和表中有3列,我希望看到的结果是(a.id=b.id或a.cid=b.cid)和(a.site=b.site) 表a使用And运算符和Or运算符SQL的内部联接,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我正在寻找一个具有两个运算符条件的查询,比如说,我现在在表a和表中有3列,我希望看到的结果是(a.id=b.id或a.cid=b.cid)和(a.site=b.site) 表a ID|CID|SITE 1| 2 |sss 2| 3 |ddd 3| 4 |ddd 表b ID|CID|SITE 1| 2 |sss 3| 3 |ddd 3| 5 |sss 现在结果应该显示, ID|CID|SITE 1| 2 |sss 3| 3 |ddd 这意味着如果(a.id=b.id和a.si
ID|CID|SITE
1| 2 |sss
2| 3 |ddd
3| 4 |ddd
表b
ID|CID|SITE
1| 2 |sss
3| 3 |ddd
3| 5 |sss
现在结果应该显示,
ID|CID|SITE
1| 2 |sss
3| 3 |ddd
这意味着如果(a.id=b.id和a.site=b.site)或(a.cid=b.cid和a.sit=b.site)
请帮帮我…这个怎么样
SELECT a.id,a.cid,a.site
FROM a
JOIN b ON a.id=b.id AND a.site=b.site
UNION ALL
SELECT a.id,a.cid,a.site
FROM a
JOIN b ON a.cid=b.cid AND a.site=b.site
或者这个
SELECT a.id, a.cid, a.site
FROM a JOIN b on a.site=b.site
WHERE a.id=b.id OR a.cid=b.cid
这个怎么样
SELECT a.id,a.cid,a.site
FROM a
JOIN b ON a.id=b.id AND a.site=b.site
UNION ALL
SELECT a.id,a.cid,a.site
FROM a
JOIN b ON a.cid=b.cid AND a.site=b.site
或者这个
SELECT a.id, a.cid, a.site
FROM a JOIN b on a.site=b.site
WHERE a.id=b.id OR a.cid=b.cid
我不确定我是否理解你的问题,你所说的以下是什么意思:
a.d=b.id or a.cid=b.cid
假设a.d指的是a.id,那么您正试图连接两个表的id。我宁愿为您解释SQL内部联接,然后您可以尝试使用它
SQL server中有3种类型的联接:内部联接、外部联接和两者(完全联接)。我想你需要内在的结合
内部联接为表A中的每条记录返回表B中的所有匹配记录
SELECT * FROM TABLEA ta INNER JOIN TABLEB tb on tb.ID = ta.ID
请确保您了解,如果任一表中存在重复记录,则联接将返回重复记录。我不确定是否理解您的问题,您所说的以下内容是什么意思:
a.d=b.id or a.cid=b.cid
假设a.d指的是a.id,那么您正试图连接两个表的id。我宁愿为您解释SQL内部联接,然后您可以尝试使用它
SQL server中有3种类型的联接:内部联接、外部联接和两者(完全联接)。我想你需要内在的结合
内部联接为表A中的每条记录返回表B中的所有匹配记录
SELECT * FROM TABLEA ta INNER JOIN TABLEB tb on tb.ID = ta.ID
请确保您了解,如果任一表中存在重复记录,则联接将返回重复记录。虽然您没有指定从哪个表获取结果,但示例输出表明您希望从表b获取结果,因此:
Select * From tableb b
Where exists
(Select * From tablea
Where site = b.site
And (id = b.id or
cid = b.cid))
虽然您没有指定从哪个表中获取结果,但示例输出表明您希望从表b获取结果,因此:
Select * From tableb b
Where exists
(Select * From tablea
Where site = b.site
And (id = b.id or
cid = b.cid))
这是我尝试过的,从表1中选择a*作为内部联接表2作为b on(a.id=b.id和a.site=b.site)或(a.cid=b.cid和a.sit=b.site)这是我尝试过的,从表1中选择a*作为内部联接表2作为b on(a.id=b.id和a.site=b.site)或(a.cid=b.cid和a.site=b.site)Charles,这似乎是正确的,但我想要一列来自表a和表B的结果查尔斯,这似乎是正确的,但我想要一列来自表a和表B的结果。。