对于 MYSQL 语法,我了解联接是 FROM table JOIN table ON table.column = table.column 我遇到过其他形式的联接,这些联接不仅不遵循该语法,而且两列不相关,而是相互补充下面是彼此的例子
from coordinates as cod join
geofences as geo
on st_contains(geo.simplified_shape, cod.request_point)
就上下文而言,这是说 st_contains,其中 A 包含 B,所以如果请求点确实位于地理围栏形状中,那么本质上这是否满足连接?我知道这是一个有效的语法,这个问题更多地涉及是否有人不仅可以阐明括号内的连接,以及何时可以适用,而不是 = 符号是否仅在这些特定情况下以及我的思路是否正确表可以连接不是因为值相等,而是因为它满足 st_contains 条件,因此例如,如果您使用 st_contains 之外的其他内容,那会是什么样子?
最佳答案
这实际上相当于:
on st_contains(geo.simplified_shape, cod.request_point) <> 0
这里发生的是 MySQL 正在将结果转换为“ bool 值”。如果函数返回一个数字,则任何非零数字为“真”,零为“假”。
如果返回值是字符串,则根据前导数字将该字符串转换为数字。如果没有前导数字,则该值为零。然后将其视为 bool 值。
关于mysql - MYSQL 上的连接语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58984042/