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

MYSQL-forespørgsel - Få aktuelle brugers indlæg og brugerens han følger indlæg

For at få alle indlæggene fra en given bruger (id=145) og alle de brugere den følger indlæg, sammen med brugeroplysningerne for hvert indlæg, ville jeg omskrive forespørgslen til at bruge union i stedet for eller, hvilket forenkler logikken. Det første udvalg får indlæggene fra den givne bruger, det andet får indlæggene fra de brugere, det følger:

(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

Forudsætninger:

  1. Activity.id-feltet repræsenterer brugeren, som følger den anden bruger. Hvis ikke, skal du ændre feltnavnet til det relevante.

  2. Opfandt brugerid-feltet i tabellen Indlæg, der repræsenterer den bruger, der sendte indlægget. Venligst brug det korrekte feltnavn i stedet.




  1. PostgreSQL brugerdefineret ugenummer - første uge med 1. februar

  2. MySQL jokertegn udskiftning

  3. java.sql.SQLEundtagelse:ORA-01652:ude af stand til at udvide temp-segmentet med 128 i tablespace TEMP (selv efter forlængelse)

  4. PHP detekterer SQL-injektionsforsøg