想要将两个表合并为表

时间:2017-05-26 11:41:37

标签: php mysql

我想要这个表中的所有行

module table

该数据库的查询是

function getmodules(){
    $sql="SELECT * FROM module
    WHERE status=1";            
    $query=$this->db->query($sql);
    return $query;
}

并从中选择的行作为查询

permissions table

以上db的查询是

function getmoduledtls($id){
    $sql="SELECT * FROM module m
    INNER JOIN permissions p
    ON p.moduleId=m.moduleId
    WHERE m.status=1
    AND p.roleId='$id'";                        
    $query=$this->db->query($sql);
    return $query;
}

1 个答案:

答案 0 :(得分:0)

您可以使用它的别名选择表的所有字段,即:m。*然后从p中选择您想要的各个字段。请注意,如果m和p中的任何列具有相同的名称,则将返回p中的值。您需要提供任何重复的字段别名,如

'm.status as module_status, p.status as permission_status"

SELECT m.*, p.permissionId, p.view, p.etc FROM module m
    INNER JOIN permissions p
    ON p.moduleId=m.moduleId
    WHERE m.status=1
    AND p.roleId='$id'"

另请注意,此查询对SQL注入是开放的。 How can I prevent SQL injection in PHP?