是否可以在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 OR或,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28684800/