sql >> Databasteknik >  >> RDS >> Mysql

MYSQL-fråga - Få aktuell användares inlägg och användarens han följer inlägg

För att få alla inlägg en given användare (id=145) och alla användare som den följer inlägg, tillsammans med användarinformationen för varje inlägg, skulle jag skriva om frågan för att använda union istället för eller, vilket förenklar logiken. Det första valet får inläggen från den givna användaren, det andra får inläggen från de användare som det följer:

(SELECT P.id as postid, 
       P.caption,
       P.date,
       U.id as userid,
       U.fullname,
       U.username,
FROM USERS AS U
INNER JOIN Posts AS P ON P.userid = U.id
WHERE U.id = 145)
UNION
(SELECT P.id, 
       P.caption,
       P.date,
       U.id,
       U.fullname,
       U.username,
FROM Activity AS A
INNER JOIN USERS AS U ON A.IdOtherUser=U.id
INNER JOIN Posts AS P ON P.userid = U.id
WHERE A.id = 145)
ORDER BY postid DESC

Antaganden:

  1. Activity.id-fältet representerar användaren som följer den andra användaren. Om inte, måste du ändra fältnamnet till lämpligt.

  2. Uppfann användarid-fältet i tabellen Inlägg som representerar användaren som postade inlägget. Använd det korrekta fältnamnet i stället.




  1. mysql decimal och tinyint multiplikationsprecision

  2. Heroku Review Apps:kopiera DB för att granska app

  3. Hur man anropar exempel helloword func med hjälp av en java-kod

  4. Hur man ändrar kolumndatatyp från tecken till numerisk i PostgreSQL 8.4