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

lấy dữ liệu từ nhiều bảng trong MySQL với các điều kiện where khác nhau

Bạn cần đưa người dùng kiểm tra tham gia, không phải ở nơi có điều kiện như vậy:

SELECT c.course_id,l.topic,l.id,l.vid_duration,p.* 
FROM courses c 
LEFT JOIN lessons l ON l.course_id=c.course_id  
LEFT JOIN progress p ON l.id = p.lesson_id and p.user_id = :userid
WHERE c.slug = :course 

Lý do của việc này là JOINS sử dụng "kết nối bên trái" (ngầm hiểu là kết nối bên ngoài ". Kiểu kết nối này có nghĩa là nếu điều kiện hoạt động, hãy trả về tất cả dữ liệu cột cho bảng đó cho hàng đó .. nếu toàn bộ điều kiện không hoạt động, nó sẽ trả về tất cả dữ liệu cho các bảng được đề cập trước đó, nhưng đối với bảng được đề cập trong hàng, nó sẽ trả về NULLS cho tất cả các cột đó.

Tôi xin lỗi vì mô tả đó, vì thật khó diễn đạt thành lời chính xác cách thức hoạt động của một phép nối phức tạp bên ngoài (hoặc bên trái) mà không trở nên dài dòng.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CodeIgniter Select Statement với mệnh đề Where

  2. Có gì sai với câu lệnh MySQL này:DECLARE @ID INT

  3. SQL-Query cần thiết để tìm các ID riêng biệt có thể sử dụng IN và NOT IN

  4. php:đảo ngược tác động của mysql_real_escape_string trên hệ nhị phân

  5. MySQL - LỖI 1045 - Quyền truy cập bị từ chối