如果我有一個像PostgreSQL在FROM子句中的json_array_elements - 爲什麼這不是笛卡爾連接?
SELECT t.json_column->>'x',
nested->>'y'
FROM my_table t,
json_array_elements(t->'nested') nested
表達我爲什麼不需要加入?更確切地說,爲什麼這不像笛卡爾CROSS JOIN
?
它看起來像一個連接通過引用json_array_elements
調用中的表別名t
而隱式發生。但是具有表函數的隱式連接語法對我來說並不熟悉。
在PostgreSQL或其他數據庫中是否還有其他類似SQL語法的例子?
*爲什麼它沒有像笛卡爾加入?*因爲,這實際上是一個隱含[橫向](http://www.postgresql.org/docs/current/static/queries-table-expressions.html#查詢,這側向)[JOIN](https://wiki.postgresql.org/wiki/What's_new_in_PostgreSQL_9.3#LATERAL_JOIN)(它總是會發生的,如果你使用'FROM'子句中的函數) – pozs