sql - mysql语法解释

标签 sql mysql 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"
        ;

最佳答案

如果您查看 FROM 子句,您会看到:

FROM #__k2_items as a

LEFT JOIN 子句中,您会看到:

LEFT JOIN #__k2_categories c ON c.id = a.catid

别名 #__k2_items 表(不管它真正叫什么)到名称 a#__k2_categories 分别为 c。在这种情况下,实际上只是为了节省输入并提高查询的可读性。

点将列名与表名相关联,以便 MySQL 知道要查找哪些表,以防在查询涉及的多个表中有相同名称的列。也就是说,它解决了列歧义

关于sql - mysql语法解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4586262/

相关文章:

sql - 如何在即将到来的生日订单中获取记录?

sql - 如何从投影中的表引用中消除 PostgreSQL 列引用的歧义?

mysql - 合并两个结果集

mysql - SQL 选择上个月的数据

mysql - 如何按帖子过滤好友关系?

Ruby - 数组测试

php - 如何防止 PHP 中的 SQL 注入(inject)?

mysql - Magento+ 添加到购物车不起作用

html - 为什么链接中的目标属性有下划线?

php - 在 PHP 中 $this-> 之后使用美元符号是什么意思?