首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有更好的方法从两个表中获取信息吗?

问有更好的方法从两个表中获取信息吗?
EN

Stack Overflow用户
提问于 2014-10-18 13:47:40
回答 2查看 45关注 0票数 0

在数据库中,用户有一个名为weapon_id的行,该行确定他从另一个带有武器的表中使用什么武器。

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

代码语言:javascript
复制
$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);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-18 13:50:38

使用像这样的连接

代码语言:javascript
复制
  $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);

根据您的需求更改连接类型。以上仅针对示例的查询

  • 内部联接:当两个表中至少有一个匹配时,返回所有行
  • 左联接:从左表返回所有行,从右表返回匹配的行
  • 右联接:从右表返回所有行,从左表返回匹配的行
  • 完全连接:在其中一个表中有匹配时返回所有行

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

票数 0
EN

Stack Overflow用户

发布于 2014-10-18 13:52:11

代码语言:javascript
复制
SELECT * FROM `weapon` as w
JOIN `user` as u
on w.weapon_id  = u.weapon_id
and u.id  = :session_id

这个怎么样?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26440426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档