有没有更好的方法从2个表中获取信息

时间:2014-10-18 13:47:40

标签: php database join

在数据库中,用户有一行名为weapon_id,用于确定他在另一张武器桌上使用的武器。

有没有更好的方法来获取连接表等信息?

$user_get = mysqli_query($db, "SELECT * FROM members WHERE id = '".$_SESSION['sess_id']."'");
$user = mysqli_fetch_assoc($user_get);

$weapon_get = mysqli_query($db, "SELECT * FROM weapons WHERE weapon_id = '".$user['weapon_id']."'");
$weapon = mysqli_fetch_assoc($weapon_get);

2 个答案:

答案 0 :(得分:0)

使用像这样的连接

  $user_get = mysqli_query($db, "SELECT * FROM members m LEFT JOIN weapons w ON(w.weapon_id=m.weapon_id)  WHERE m.id = '".$_SESSION['sess_id']."'");
  $user = mysqli_fetch_assoc($user_get);

根据您的要求更改联接类型。以上查询仅用于示例

  • INNER JOIN:当BOTH中至少有一个匹配时返回所有行 表

  • LEFT JOIN:返回左表中的所有行以及匹配的行 从右表

  • RIGHT JOIN:返回右表中的所有行,并匹配 左表中的行

  • FULL JOIN:当其中一个表中有匹配时返回所有行

有关加入click here 的详情 并检查此http://blog.codinghorror.com/a-visual-explanation-of-sql-joins/

答案 1 :(得分:0)

SELECT * FROM `weapon` as w
JOIN `user` as u
on w.weapon_id  = u.weapon_id
and u.id  = :session_id

这个怎么样?