Mysql
 sql >> база данни >  >> RDS >> Mysql

MYSQL Query - Вземете публикациите на текущия потребител и на потребителя, който той следва

За да получа всички публикации на даден потребител (id=145) и всички потребители, които той следва, заедно с потребителските данни за всяка публикация, бих пренаписал заявката, за да използвам union вместо или, като по този начин се опростява логиката. Първият избор получава публикациите на даден потребител, вторият получава публикациите на потребителите, които следва:

(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

Предположения:

  1. Полето Activity.id представлява потребителя, който следва другия потребител. Ако не, трябва да промените името на полето на подходящото.

  2. Изобретил полето userid на таблицата Posts, представляващо потребителя, който е публикувал публикацията. Моля, използвайте правилното име на полето на негово място.




  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 припокриващи се периоди от време въз основа на критерии

  2. Как да изтрия модели от django?

  3. Актуализиране на проблеми със създаването на проста Php, MySql система за гласуване

  4. как да отразите специални символи като åäö с utf8

  5. Премахнете дубликатите в голяма MySql таблица