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 のみです。 句UM作成された表の別名です。FROM

FROM Posts M, users U

これは、クエリ全体で、そのテーブルMへの参照であることを意味します。Posts選択する列のテーブルを指定できます (Posts.post_ID別名が付けられていなければ機能します)。

これは、クエリを実行している 2 つのテーブルの列名が同じ場合に必要です。たとえば、 と の間にあいまいさがある場合がありM.uid_fkますU.uid_fk。あいまいさがない場合は、その必要はなく、単にわかりやすくするために行ってもかまいません。

このようなあいまいさは、同じテーブルで 2 回結合することによって発生する可能性があります。その場合、テーブル自体があいまいになるため、とにかく少なくとも 1 つのエイリアスが必要です。

于 2013-05-30T19:35:44.257 に答える