mysql语法解释

Ibe*_*dia 4 mysql sql syntax

我想知道a.*,c.name,... a.access等意味着什么.换句话说,当我在点和点的功能之前添加一个字母时,我到底指的是什么.

这是我发现这种情况的代码示例:

$query = "SELECT a.*, c.name as categoryname,c.id as categoryid, ".
         "c.alias as categoryalias, c.params as categoryparams".
        " FROM #__k2_items as a".
        " LEFT JOIN #__k2_categories c ON c.id = a.catid";

        $query .= " WHERE a.published = 1"
        ." AND a.access <= {$aid}"
        ." AND a.trash = 0"
        ." AND c.published = 1"
        ." AND c.access <= {$aid}"
        ." AND c.trash = 0"
        ;
Run Code Online (Sandbox Code Playgroud)

Bol*_*ock 7

如果你看一下这个FROM条款,你会看到:

FROM #__k2_items as a
Run Code Online (Sandbox Code Playgroud)

LEFT JOIN条款中,你看到这个:

LEFT JOIN #__k2_categories c ON c.id = a.catid
Run Code Online (Sandbox Code Playgroud)

别名#__k2_items表(不管它是真正的称呼)的名称a,并#__k2_categoriesc分别.在这种情况下,它只是为了节省输入并提高查询的可读性.

点将列名与表名相关联,以便MySQL知道要查找哪些表,以防查询中涉及的多个表中包含相同名称的列.也就是说,它解决了列模糊问题.