【发布时间】:2014-03-20 23:12:06
【问题描述】:
我的数据库中有两个表(phpmyadmin)。我想获取 table1 中的 user1 并使用 php 中的函数将其与 table2 中的 user2 进行比较。这不是我需要比较的主键。我怎么可能做到这一点?
我可以这样做吗?
public function userreservationdata($table,$table2)
{
$q = "SELECT user FROM $table WHERE user =(SELECT sname FROM $table2 WHERE sname=:sname) ";
$stmt = $this->con->query($q);
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
return $result;
}
此代码假定输出结果。(来自不同的文件)
$reservations = $code->userreservationdata("user_list","reserve_list");
谢谢你。
【问题讨论】:
-
为什么不使用 INNER JOIN ?
-
另外一件事,当你写这样的子查询时,通常你不会在主查询的 where 子句中使用“=”,它必须是“IN”,因为子查询可以返回超过一排。 (在您的情况下,发生这种情况的可能性很大,因为 sname 不是唯一的)