是否可以在 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/