mysql - SQL JOIN 与 OR

标签 mysql sql

是否可以在 SQL 中执行以下操作?

SELECT * FROM table1 INNER JOIN table2 ON (col1=col2 OR TRIM(col1)=TRIM(col2))

或者:

SELECT * FROM table1 INNER JOIN table2 USING (col1 OR col2)

最佳答案

您可以在联接中使用任意逻辑。因此,回答您的问题:是的,您可以在连接中使用析取(“OR”)。也就是说,在您的具体示例中,您的逻辑是重言式——它总是正确的——所以它不会实现任何冗余。

您也不必加入平等。例如,我们可以通过比较大小来模拟窗口函数:

select    greatest.id,
          greatest.val
from      someTable greatest
left join someTable greater
on        greater.id  = greatest.id
and       greater.val > greatest.val
where     greater.id is null;

虽然我上面的示例很常见,但根据您的问题,我发现非常很少使用非连接连接。但是,这当然可以做到。

关于mysql - SQL JOIN 与 OR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28684800/

相关文章:

MySQL:DATE_ADD

java - 如何减少数据库表行整数值

如果特定列中已经没有特定值,则 MySQL 插入

mysql - 如何创建包含来自多个表的多个列的全文索引?

sql - 如何在 MySQL 中使用列值作为列名

java - 如何组合这些 mysql 语句

mysql - 给定一个日期,在 MySQL 非线性中查找上一个和/或当前和下一个 x# 日期

使用 alter table 命令创建 MySQL 外键

php - 使用 PHP 表单下拉列表创建 mySQL 查询 - 如果用户忽略下拉列表,则不要按该参数进行过滤

sql - 对带有 Case 语句的Where进行矛盾条件检查