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

Thực hiện một truy vấn phụ trên kết quả truy vấn?

Hãy thử điều này:

SELECT a.name_surname,GROUP_CONCAT(Distinct w.word Order by w.word asc) AS words
FROM (
  SELECT f1.asked_user_id AS friend_id,
       f1.created,
       u.name_surname,
       u.avatar
  FROM friends AS f1 
  INNER JOIN friends AS f2 ON f1.asked_user_id = f2.asker_user_id
  INNER JOIN users AS u ON f1.asked_user_id = u.id
       AND f1.asker_user_id = f2.asked_user_id
       AND f1.asker_user_id = 1
  WHERE f1.status = 1 AND f2.status = 1
) a
LEFT JOIN connections c ON c.user_id = a.friend_id 
LEFT JOIN words_en w ON c.word_id = w.id
GROUP BY 1;

bản trình diễn sqlfiddle

Có truy vấn ban đầu của bạn, những gì tôi đã làm là coi truy vấn đó như một bảng (a) và LEFT JOIN nó với các kết nối connections bàn. Sau đó, LEFT JOIN các kết nối connections bảng với words_en bảng để đạt được các từ mong muốn. Điều này giúp bạn có thể nhận được tất cả người dùng quay lại từ truy vấn ban đầu của bạn, ngay cả khi không có kết nối / từ nào.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL ODBC Sự cố:Không tìm thấy tên nguồn dữ liệu và không có trình điều khiển mặc định nào được chỉ định

  2. Làm cách nào để lưu các tệp PDF đã tạo vào cơ sở dữ liệu MySQL bằng Java?

  3. MySQL:Làm cách nào để hiển thị các danh mục đơn giản cho việc này?

  4. bảng tự cập nhật mysql hoạt động như thế nào

  5. Tất cả các toán tử SQL đó trong Laravel là gì?