php - 使用来自多个表的数据

标签 php mysql database syntax

这是我的问题:我有 3 个表,每个表中都有重叠的信息(特别是用户名)。除了用户名行在每个表中的名称不同。因为用户名是特定于用户的,所以根据用户名获取有关用户的所有其他信息是有意义的。这就是我所拥有的。 (第一个函数返回查询,第二个函数返回数组中的信息(或者无论如何应该)。

function get_user_by_id($id) {
    global $connection;
    $query = "SELECT * FROM ownerOrganization, owner, queue_acl";
    $query .=" WHERE owner.ownerId=ownerOrganization.ownerId";
    $query .=" AND owner.ownerId=queue_acl.user_id";
    $query .= " AND owner.ownerId ='{$id}'";
    $result_set = mysql_query($query);
    confirm_query($result_set);
    if ($user = mysql_fetch_array($result_set)) {
        return $user;
    } else {
        return NULL;
    }
}

function get_user_id() {
    if (isset($_GET['ownerId'])) {
        return get_user_by_id($_GET['ownerId']); 
    } 
}

但是当我在另一个页面上执行诸如 $sel_user = get_user_id(); 之类的操作时,它实际上并没有提取任何选定的用户信息......我认为这正在发生因为我关于处理多个表的语法不正确。无论如何,任何输入将不胜感激。

最佳答案

要使用 JOINS,请以这个片段代码为例:

$query = "SELECT * FROM (ownerOrganization INNER JOIN owner ON owner.ownerId=ownerOrganization.ownerId) INNER JOIN queue_acl ON owner.ownerId=queue_acl.user_id";
$query .=" WHERE owner.ownerId ='{$id}'";

问候

关于php - 使用来自多个表的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10883677/

相关文章:

php - 对单页 Web 应用程序架构的愚蠢但明智的关注

sql - 如何选择单行多列的 AVG

mysql - SQL join 只匹配最大值

mysql - MariaDB 上的 "GROUP BY"与 MySQL 的行为不同

mysql - 触发器中的多个查询

php - 带分组和最新记录的 Doctrine 查询库

php - Laravel Eager Loading - 只加载特定的列

php - 推特 1.1 OAuth authenticity_token_error(99)

MySQL 使用子查询连接表

java - 我可以为我的网站之一使用 C3PO/DBCP 连接池吗