Farklı kullanıcılar için mysql veri alma

3 Cevap php

I iki kullanıcı varsa tek kullanıcılar sonrası tablo yani birçok mesaj var

postid, post, userid, time(i.e timestamp)

ve arkadaşlar için başka bir tablo var yani

id, friendid, userid, friend_sinc(i.e timestamp)

Şimdi kullanıcıların arkadaş o arkadaş olarak user1 eklenen tarihten sonra user1 mesajları görmek gerektiğini istiyorum. Değil o onu arkadaş olarak ekledi tarihinden daha eski mesajlar. Nasıl tek bir MySQL sorguda yapıldığını olabilir?

3 Cevap

Onlar kullanıcı 12 ile arkadaş olduktan sonra bu insanların tüm mesajlarını bakmak istiyorum:

select     *
from       Posts p
join       Friends f
on         p.userid = f.friendid
and        p.time >= f.friend_since
where      f.userid = 12
SELECT p.*
FROM post p, friend f
WHERE p.userid = f.userid AND p.time >= f.friend_sinc;

Düzenleme: Ben kimliği olan, ancak nokta açık persond hangi olarak iki şekilde yorumlanabilir sanırım.

Bir sendika ile

select p.* from posts p where p.userid = <my_user_id> 
union
select p.* from posts p, friends f where 
p.userid = f.friendid and 
f.userid = <my_user_id> and 
p.time >= f.friend_since

Yoksa kendinizi kendi arkadaş olmak için düşünün, o, friendid = <my_user_id> and userid = <my_user_id> and friend_since = <date user was created> ile friend bir giriş vardır, sonra ikinci sorgu çalışır ve de kendi yazı dönün. Ben size çiftleri olsun sanmıyorum.