将SQL行语句更有效地写在彼此内部

时间:2016-11-12 15:15:52

标签: php mysql sql-server database

$res = mysqli_query($GLOBALS["___mysqli_ston"], "SELECT * FROM users WHERE id=5");
    while($row = mysqli_fetch_array($res)) {

        $firstName = $row['firstName'];

        $otherRes = mysqli_query($GLOBALS["___mysqli_ston"],
        "SELECT * FROM othertable WHERE firstName='$firstName'");

        while($row2 = mysqli_fetch_array($otherRes)) {

             //SQL statements going off in here
        }
}

我编写了上面的示例代码,以显示我使用SQL中另一个表中的数据访问表的方式。

我一直在用youtube学习我的PHP技能,我确信有一种更有效的方法来编写这个,在SQL中的表名和列名之间有点,但我无法弄清楚它应该如何写的。

有人可以告诉我他们如何以最好,最有效的方式编写上述代码吗?使用这种方法的真实代码已经开始使用大量数据,并且需要花费更长的时间来完成它。

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用联接

执行单个查询
  SELECT * 
  FROM users 
  INNER JOIN othertable on  othertable.firstName= users.firstname
  WHERE user.id=5

(使用inner,只获得id = 5的用户具有相同名字的行)

答案 1 :(得分:0)

假设两个表之间存在链接,您通常会使用该公共列执行join,如:

select * from othertable o
    left outer join users u on u.userid=o.userid
    where u.id=5

以上假设两个表中都有一个名为userid的公共列