sql >> Database teknologi >  >> RDS >> Mysql

Lave en underforespørgsel på forespørgselsresultater?

Prøv dette:

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;

sqlfiddle-demo

Med din oprindelige forespørgsel, det, jeg gjorde, var at behandle den forespørgsel som en tabel (a) og LEFT JOIN det med connections bord. Derefter LEFT JOIN connections tabel med words_en tabel for at nå de ønskede ord. Dette gør det muligt at få alle brugere, der vender tilbage fra din oprindelige forespørgsel, selv når der ikke er nogen forbindelser/ord.




  1. ScalikeJDBC:Forbindelsespuljen er endnu ikke initialiseret.(navn:'default)

  2. Installation af RAC til en database med datafiler

  3. Tæller antallet af matchede ord

  4. fejl:Identifikationsgodkendelse mislykkedes for brugeren