2012-05-11 3 views
0

나는 물어보고 싶은데, 나는 정말로 대답이 필요하다.내가 따르는 사용자의 상태 표시

여기 하나의 데이터베이스에 3 개의 테이블이 있습니다.

1 # 사용자 - id_user (INT) - 사용자 이름 (텍스트)

2 # status_update - id_status (INT) - id_user (INT) - 사용자 이름 (텍스트) - 상태 (텍스트)

3 # 따를 - id_user (INT) - id_user_follow (INT) - 사용자 이름 (텍스트) - username_follow (텍스트)

질문은 제가 따르는 사용자의 상태를 표시하는 방법입니다. 내가 따르지 않는 사용자의 상태는 표시하지 않습니다. ?? .. PHP와 MySQL을 사용하여, 제발, 도움이 필요해.

새로운 질문

죄송합니다, 메신저는 여전히이 내 진짜 테이블 이해 해달라고 메신저

, 나는 아직도 [1], 여기에 내가 가지고 [내 이전 게시물]에서 답을 이해하지 못하는 도와주세요 3 개의 테이블.

 
1 # profile 
- id_user 
- username 
- email 

2 # picture 
- id_picture 
- id_user 
- the title 

3 # subscribe 
- id_user_a 
- Id_user_b (people who subscribe at user_a) 
- date 

이제 질문입니다 만 구독 사람들의 타이틀 사진을 표시하고, 당신은에 보일 것입니다 가입하지 않은 사람들의 제목 사진,

+0

([SQL 조인]에 대해 알아 http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of- :

그리고 여기에 고정 데이터베이스에서 쿼리입니다 sql-joins.html). – eggyal

+1

'status_update'테이블에 사용자 이름이 필요하지 않습니다. 또한 'follow'테이블에는 username 및 username_follow가 필요하지 않습니다. 나는 그것이 당신의 질문에 대답하지 않는다는 것을 압니다. 그러나 당신이 다른 것을하기 전에 그것을 고쳐야합니다. –

답변

1

첫째로 SELECT status FORM status_update AS s LEFT JOIN follow AS f ON s.id_user = f.id_user_follow WHERE f.id_user = 'YOUR_ID' LIMIT 0,5

시작할 수 있습니다 귀하의 데이터베이스 구조. 당신은, 사용자가 각 테이블에 사용자 명 저장 만 users 테이블에 저장하지 않도록,

users - id (int), username (varchar) 
status_updates - id (int), users_id (int), status (text) 
follow - users_id, following_users_id 

주의 사항 : 여기에 내 제안합니다. 또한 사용자 이름은 varchar 유형이어야합니다.

SELECT u.username, s.status 
FROM users u 
LEFT JOIN follow f ON u.id = f.following_users_id 
LEFT JOIN status_updates s ON u.id = s.user_id 
WHERE f.user_id = USER_ID 
+0

새 상태에서 이전 상태로 주문하는 방법 ?? –

+0

상태의 날짜가 없다면 쿼리 끝에'ORDER BY s.id DESC'를 추가해야합니다. 그것은's입니다.id'는'AUTO_INCREMENT'이어야합니다 – vinculis

+0

정말 많이 : D –

1
SELECT u.username, s.status 
FROM users u 
LEFT JOIN follow f ON (u.id_user = f.id_user_follow) 
LEFT JOIN status_update s ON (u.id = s.user_id) 
WHERE f.id_user = USER_ID; 

를 표시하지 않는 방법 테이블을 표준화하면 모든 테이블의 사용자 이름을 복제 할 필요가 없습니다.

+0

+ 정상화 코멘트에 대해 –

0

SQL : PHP에서 당신이 allready 여부를 DB에 연결을 가지고 있는지 여부에 따라 달라집니다보다 .. 은 초안으로 당신은 수정해야 모든 var_dump($query->result());

+0

오케이 : D –