繁体   English   中英

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

[英]Is there a better way to get info from 2 tables

在数据库中,用户有一行名为“ apache_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);

使用这样的联接

  $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:当两个表中至少有一个匹配项时,返回所有行

  • 左联接:从左表返回所有行,并从右表返回匹配的行

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

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

有关加入的更多信息, 请单击此处 ,也请检查此http://blog.codinghorror.com/a-visual-explanation-of-sql-joins/

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

这个怎么样 ?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM