1

一般来说,我是 PDO 和 MySQL 的新手。我正在从即将弃用的 MySQL 切换到 PDO,我有一些问题想更好地了解 MySQL 查询的工作原理。

我目前有这个功能,不明白表格行前大写U.&M.的意思。

M. 是否连接到 $morequery = ""; &U. 到更新功能?

public function Updates( $_iD, $lastid ){
$morequery = " "; // More Button
$data = " ";

if( $lastid )
    $morequery = "AND M.post_iD < '".$lastid."' "; // More Button End
        $query = mysql_query("SELECT M.post_iD, M.uid_fk, M.message, M.created, U._iUsername,M.uploads FROM Posts M, users U  WHERE U._iStatus='1' AND M.uid_fk=U._iD and M.uid_fk='$_iD' $morequery order by M.post_iD desc limit" .$this->perpage) or die(mysql_error());
            while($row = mysql_fetch_array($query))
                $data[] = $row;
    return $data;
}
4

3 回答 3

4

这与 PHP 或 PDO 无关,而与 MySQL 无关。 U并且是在子句M中创建的表别名:FROM

FROM Posts M, users U

这意味着在整个查询过程中,M都是对该Posts表的引用。您可以指定要选择的列的表(Posts.post_ID如果没有别名则可以使用)。

当您查询的两个表具有相同的列名时,这是必要的。例如,M.uid_fk和之间可能存在歧义U.uid_fk。如果没有歧义,则没有必要,并且可能只是为了清楚起见。

在同一张桌子上加入两次可能会产生这种歧义。在这种情况下,至少需要一个别名,因为表本身变得不明确。

于 2013-05-30T19:35:44.257 回答
2

U & M 是表别名

如果您查看FROM Posts M, users U定义它们的语句 ( )的 from 子句

M = 帖子

U = 用户

对于这种情况,您可以将 U 替换为 users 并将 M 替换为 Posts in 获得相同的结果。

在简单查询中,它是一种有用的速记,在表连接到自身的查询中,它需要解决任何歧义

于 2013-05-30T19:33:37.687 回答
0

M 和 U 是表名的快捷方式:

FROM Posts M, users U
于 2013-05-30T19:35:20.170 回答