MySQL - 使用 or 语句连接?

标签 mysql inner-join

我有一个查询,如果该字段具有一个值或另一个值,我想连接到另一个表。我该怎么做呢?我应该使用 or 语句吗? (这可能吗?)或者 IN 语句就足够了吗?

SELECT table1.field1,table2.field2 FROM table1
INNER JOIN table2 ON table1.field1 = table2.field2 OR table2.field2 = 0

基本上,表 2 中的字段可以是表 1 中的匹配项,也可以是数字 0,我想在“或”上进行匹配。因此,如果 table1 字段和 table2 字段不匹配,但 table2 字段中有 0,那么我想加入该表。希望这是有道理的。或者这会有效/更好吗?

SELECT table1.field1,table2.field2 FROM table1
INNER JOIN table2 ON table1.field1 IN(table2.field2,0)

最佳答案

我的想法略有不同,并从table2开始。

SELECT table1.field1, table2.field2
    FROM table2
        LEFT JOIN table1
            ON table2.field2 = table1.field1
    WHERE table2.field2 = 0
        OR table1.field1 IS NOT NULL

关于MySQL - 使用 or 语句连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7561728/

相关文章:

mysql - SQL 根据不同的表关系找出最常出现的元素

mysql - Rails - 将不同的 mysql 数据库查询到标准应用程序数据库

php - 没有重复记录的内部连接

SELECT语句两行之间的MySQL区别

php - sql 查询未从 php 中的对象方法内触发

php - “DonutChart”不是有效的 Lavachart 对象

MySQL concat 与 INNER JOIN

SQL数据库选择命令

mysql - 如何保证auto_increment数字没有间隙?

php - MySQL 查询返回无效资源但没有错误