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:
-
Bidang Activity.id mewakili pengguna, yang mengikuti pengguna lain. Jika tidak, Anda perlu mengubah nama bidang ke yang sesuai.
-
Menemukan bidang userid dari tabel Postingan yang mewakili pengguna yang memposting posting. Tolong gunakan nama bidang yang benar sebagai gantinya.