Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Membuat sub-kueri pada hasil kueri?

Coba ini:

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;

demo sqlfiddle

Memiliki kueri asli Anda, yang saya lakukan adalah memperlakukan kueri itu sebagai tabel (a) dan LEFT JOIN dengan connections meja. Kemudian, LEFT JOIN connections tabel dengan words_en tabel untuk mencapai kata-kata yang diinginkan. Hal ini memungkinkan untuk mendapatkan semua pengguna yang kembali dari kueri awal Anda, meskipun tidak ada koneksi/kata.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rentang batas MySQL

  2. MySQL mengkonsolidasikan catatan data duplikat melalui UPDATE / DELETE

  3. kolom dinamis menggunakan kueri tabel pivot

  4. Akses ke wadah mysql dari wadah lain

  5. Apa cara yang baik untuk mendenormalisasi database mysql?