PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

PostgreSQL json_array_elements trong mệnh đề FROM - tại sao đây không phải là tham gia cartesian?

Trên thực tế, điều này là lỗi thời cú pháp cho CROSS JOIN. Tương đương chính thức:

SELECT
    t.json_column->>'x',
    nested->>'y'
FROM 
    my_table t
CROSS JOIN
    json_array_elements(t.json_column->'nested') nested;

Truy vấn không tạo ra sản phẩm cacte mà hoạt động giống như một phép nối bên trong. Điều này là do nó có một ẩn tham chiếu giữa hai phần của phép nối, trong trường hợp này là bí danh t . Loại liên kết này được gọi là LATERAL JOIN . Đối với tài liệu :

Nếu một trong các phần của phép nối là một hàm thì nó được coi là phần bên theo mặc định.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khai báo một cột kiểu mảng 'not-null-string' trong PostgreSQL

  2. Làm cách nào để thoát khỏi dấu nháy đơn trong truy vấn dòng lệnh của psql?

  3. Biểu đồ vòng có hướng:tìm tất cả các đường dẫn từ một nút cụ thể

  4. Rails 3.2 Postgres Save Error ActiveRecord ::StatementInvalid:PG ::Error:ERROR:Lỗi cú pháp gần 'T' ở vị trí 5

  5. Làm cách nào để gửi email từ trình kích hoạt PostgreSQL?