2016-08-10 1 views
1

첫 번째는 user 테이블이고 두 ​​번째 테이블은 places이고 세 번째 테이블은 favorites 테이블 (두 개의 fk, 사용자 및 다른 테이블에서 두 개)입니다. 한 사용자의 모든 좋아하는 장소를 얻고 싶습니다. 어떻게해야합니까?세 테이블에서 특정 사용자의 데이터를 가져 오는 SQL 쿼리

나는 조인과 함께 놀려고했지만 특정 사용자의 데이터를받는 방법을 모르겠다.

$qry = 
    "SELECT places.place_id , places.db_image ,places.description from places 
    inner join favorites on places.place_id = favorites.place_id 
    inner join user on user.id = favorites.user_id 
    "; 

    $query=mysqli_query($con ,$qry); 
    $return_arr = array(); 
+1

여기서 user_id = 123 –

+0

내가 실제로 물어 보려던 내용은 ID가 일부 변수에 들어 있기 때문입니다 (예 : $ id).이 ID는 검색어에 넣어야합니까? –

+0

이 효과가 있습니까? 사용자에 사용자 가입 $ id = favorites.user_id? @UlliSchmid –

답변

0
$sql = sprintf(
'SELECT 
    p.place_id, 
    p.db_image, 
    p.description 
FROM 
    places p INNER JOIN 
    favorites f ON p.place_id = f.place_id INNER JOIN 
    user u ON u.id = f.user_id 
WHERE 
    u.id = %d' 
, $userId); 

또는 당신은 단순히 장소

SELECT 
    p.* 
FROM 
    places p INNER JOIN 
    favorites f ON p.place_id = f.place_id INNER JOIN 
    user u ON u.id = f.user_id 
WHERE 
    u.id = %d 

준비된 문을 사용하는 것이 좋습니다,하지만 당신이 그들에 익숙하지 않은 경우,이 정도면 충분에서 모든 열을 선택합니다.

+0

정말 고마워요 :) –

+0

당신은 오신 것을 환영합니다 :) –

관련 문제