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

Tại sao truy vấn này không hoạt động trong SQLite nhưng hoạt động tốt trong MySQL và MSAccess?

Trong SQLite, bạn nhận được cột tự động tăng thêm bằng cách sử dụng KHÓA CHÍNH CỦA INTEGER . (Và nếu bạn dựa vào giá trị thực tế của payers.id trong truy vấn, bạn nên cung cấp chúng một cách rõ ràng.)

Bạn không nên cố gắng lồng các phép nối khi không cần thiết:

SELECT payer_payment.payer_id,
       Sum(payer_payment.amount)                             AS total_paid,
       Sum(payer_payment.pays * payments_share.single_share) AS fair_share
FROM       payers
INNER JOIN payer_payment
        ON payers.id = payer_payment.payer_id
INNER JOIN (SELECT payment_id,
                   Sum(amount) / Sum(pays) AS single_share
            FROM   payer_payment
            GROUP  BY payment_id) AS payments_share
        ON payer_payment.payment_id = payments_share.payment_id
WHERE payers.user_id = 1
GROUP BY payer_payment.payer_id;

SQLFiddle




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để tạo một cột ảo phức hợp trong Mô hình Eloquent?

  2. Thứ tự truy vấn MySQL theo giá trị trong cột JSON

  3. Biến không xác định:POST - PHP và MySQL

  4. Tại sao các truy vấn của UNION quá chậm trong MySQL?

  5. Thay đổi công cụ bảng trong MySQL