Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php函数中的子查询_Php_Oop_Pdo - Fatal编程技术网

php函数中的子查询

php函数中的子查询,php,oop,pdo,Php,Oop,Pdo,我的数据库中有两个表(phpmyadmin)。我想获取表1中的user1,并使用php中的函数将其与表2中的user2进行比较。这不是我需要比较的主键。我怎么可能做到呢? 我可以这样做吗 public function userreservationdata($table,$table2) { $q = "SELECT user FROM $table WHERE user =(SELECT sname FROM $table2 WHERE sname=:snam

我的数据库中有两个表(phpmyadmin)。我想获取表1中的user1,并使用php中的函数将其与表2中的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;
    }
假设此代码将输出结果。(来自不同的文件)

谢谢。

这会有用的

 SELECT user FROM table1 t1 INNER JOIN table2 t2 ON t1.user=t2.user

为什么不使用内部联接呢?还有一件事,当您编写这样的子查询时,通常在主查询的where子句中不使用“=”,它必须是“in”,因为子查询可以返回多行。(在您的情况下,发生这种情况的可能性很大,因为sname不是唯一的)它不会获取致命错误:调用成员函数fetchAll()在非对象上,您必须用您想要使用的内容替换表1和表2,并确保这两个表都有一个列名为user或更改为yeah,它们将在此处更改$reservations=$code->userreservationdata(“user_list”,“reserve_list”);在执行查询之前回显查询,并查看其是否为有效的SQL查询
 SELECT user FROM table1 t1 INNER JOIN table2 t2 ON t1.user=t2.user