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

MYSQL Query - Dapatkan posting pengguna saat ini dan posting pengguna yang dia ikuti

Untuk mendapatkan semua posting, pengguna tertentu (id=145) dan semua pengguna yang mengikuti posting, bersama dengan detail pengguna untuk setiap posting, saya akan menulis ulang kueri untuk menggunakan union alih-alih atau, sehingga menyederhanakan logika. Pilihan pertama mendapatkan kiriman dari pengguna yang diberikan, yang kedua mendapatkan kiriman dari pengguna yang mengikutinya:

(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

Asumsi:

  1. Bidang Activity.id mewakili pengguna, yang mengikuti pengguna lain. Jika tidak, Anda perlu mengubah nama bidang ke yang sesuai.

  2. Menemukan bidang userid dari tabel Postingan yang mewakili pengguna yang memposting posting. Tolong gunakan nama bidang yang benar sebagai gantinya.




  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 - Menggunakan COUNT(*) dalam klausa WHERE

  2. Memilih baris terakhir TANPA jenis kunci apa pun

  3. Apakah pernyataan gabungan tersedia di MySQL?

  4. Mengapa saya mendapatkan System.Data.DataRowView alih-alih nilai sebenarnya di Listbox saya?

  5. MySQL menggunakan filesort pada kolom TIMESTAMP yang diindeks