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

Nhận kết quả truy vấn từ 2 bảng db ngay cả khi bảng thứ hai không có mục nhập tương ứng

O.P. cho biết:

Vấn đề là where mệnh đề lọc tập hợp kết quả, vì vậy kiểm tra của bạn cho một req.status trong số 2 hoặc 5 ném ra bất kỳ thứ gì trong đó req.status là null vì không có hàng nào phù hợp với bảng applications .

Thứ tự hoạt động chung, lý thuyết (vì không có gì ngoài việc triển khai tầm thường sẽ thực sự làm bất cứ điều gì như thế này) thứ tự hoạt động cho một select tuyên bố là:

  • Sản xuất toàn bộ sản phẩm cacte của từng bảng được liệt kê trong from mệnh đề.
  • Lọc điều đó bằng cách áp dụng join được chỉ định tiêu chí và loại bỏ các hàng không vượt qua các bài kiểm tra được chỉ định.
  • Áp dụng các tiêu chí lọc được chỉ định trong where , xóa các hàng không vượt qua các bài kiểm tra đã chỉ định.
  • Sắp xếp thứ tự các kết quả được đặt trên các biểu thức được chỉ định trong nhóm group by mệnh đề và phân chia kết quả được thiết lập thành các nhóm.
  • Thu gọn từng nhóm như vậy thành một hàng, tính toán giá trị của tất cả các hàm tổng hợp được chỉ định.
  • Xóa tất cả các cột khỏi tập hợp kết quả không được liệt kê trong select danh sách cột báo cáo.
  • Sắp xếp thứ tự kết quả cuối cùng này được đặt theo các cột / biểu thức được chỉ định trong order by mệnh đề.

Bạn có thể làm một trong hai điều:

  • thay đổi truy vấn của bạn để kiểm tra tính vô hiệu:

    where...( req.status is null OR req.status in (2,5) )...
    
  • di chuyển kiểm tra trên req.status theo tiêu chí tham gia:

    left join requests req on req.app_id =  apps.id
                          and req.uid    =  {$user_id}
                          and req.status in (2,5)
    


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không thể chèn các ký tự Hy Lạp đúng cách trong cơ sở dữ liệu mysql

  2. Cách hiển thị các hàng trong gói ba trong MySQL

  3. rắc rối với đối tượng PDO

  4. ĐỂ CẬP NHẬT v / s CHÌA KHÓA CHẾ ĐỘ CHIA SẺ:Cho phép các chủ đề đồng thời đọc giá trị trạng thái cập nhật của hàng bị khóa

  5. Làm cách nào để chuyển mật khẩu từ tập lệnh bash sang aptitude để cài đặt mysql?