Sql 如何将一些行与一个相关表行关联起来?

Sql 如何将一些行与一个相关表行关联起来?,sql,dql,Sql,Dql,如何执行查询以选择与第一个表的每一行都有一些相关行的相关表的foo1值any equal/all equal/any not equal/all not equal/all not equal等于'foo2'的行。例如,如果我有这个问题: SELECT c FROM `table1` c INNER JOIN `table2` p ON p.convocation_id = c.id WHERE p.foo1 = foo2 将选择table1中的行,其中table2行中的任何foo1值都等于

如何执行查询以选择与第一个表的每一行都有一些相关行的相关表的foo1值any equal/all equal/any not equal/all not equal/all not equal等于'foo2'的行。例如,如果我有这个问题:

SELECT c FROM `table1` c 
INNER JOIN `table2` p ON p.convocation_id = c.id
WHERE p.foo1 = foo2
将选择table1中的行,其中table2行中的任何foo1值都等于foo2

但是,如果我只想在并非所有的foo1值都等于foo2的情况下进行选择,该怎么办?

1->>任何值都等于foo2

从表1C中选择前1* 内部联接表2 p ON p.concuration\u id=c.id 其中p.foo1类似于“foo2”

2->>全部等于foo2

从表1c中选择* p.convention上的内部连接表2p\u id=c.id 其中p.foo1类似于“foo2”

3->任何不等于foo2的值

从表1c中选择* 内部联接表2 p ON p.concuration\u id=c.id
其中p.foo1'foo2'

您需要查看EXISTS,类似EXISTS的内容请从表2中选择1,其中t.concuration\u id=c.id和t.foo1 foo2。@user2989408-谢谢。请原谅我的无知,但什么是接线员?另外,我不想检查是否存在任何值,但如果不是所有值都相等,则在SQL中使用NOT EQUALS运算符。仔细想想,并不是所有val=1的行都会转换为至少有一行使用了val 1,这是一种情况。@user2989408-我明白了。谢谢,如果你能发布一些示例数据和预期的输出,有人可以帮助你进行精确的查询。你的第三个选择已经成功了。但我不确定第二个。它不会选择任何foo1值是否等于foo2吗?我们可以使用等于运算符“=”或“like”来比较varchar列。foo1-like'foo2'->appox等于foo2-foo1-like'%foo2'->以foo2-foo1-like'foo2%'->结束于foo2-foo1-like'%foo2%'->我知道的任何foo2位置。但请认为表2中有一些列与p.convocation_id=c.id条件相匹配。因此,如果任何列的foo1值为'foo2',则它将匹配。我在寻找所有人都平等的比赛