簡體   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