2016-08-10 5 views
1

最初はuserテーブル、次にplacesテーブル、3番目にfavoritesテーブル(2つのfk、1つはユーザから、もう1つは場所から)。私は一人のユーザーの好きな場所をすべて手に入れたいですが、どうすればいいですか?3つのテーブルから特定のユーザのデータをフェッチする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など)。 –

+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

あなたは歓迎です:) –

関連する問題