从三个表中获取特定用户数据的SQL查询


SQL query to fetch data of a particular user, from three tables

第一个是user表,第二个是places表,第三个是favorites表(有两个fk,一个来自用户,另一个来自位置)。我想获得一个用户所有喜欢的地方,怎么做呢?

我试着玩连接,但我不知道的是如何获得特定用户的数据。

    $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();
$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

最好使用预处理语句,但如果您不熟悉它们,这也足够了。