2

ここで、この PHP 関数について簡単な質問があります。amSELECT クエリの後にあるものは何ですか? またw、このクエリの意味は何ですか?

function download_redirect_torrent($winner_id)
{
    global $db, $setts;
    $output = array('url' => null, 'redirect' => false, 'display' => null);
    $winner_id = intval($winner_id);
    $media_details = $db->get_sql_row(
        "SELECT 
            am.*, w.is_dd, w.dd_active, w.dd_active_date 
        FROM  
            " . DB_PREFIX . "auction_media am, " . DB_PREFIX . "winners w 
        WHERE 
            am.auction_id=w.auction_id AND w.winner_id=" . $winner_id . " AND am.media_type=4"
    );
}
4

4 に答える 4

5

amとはwテーブル エイリアスであり、この 1 つのクエリにローカライズされたテーブル名の実質的な省略形です。

それらは次の場所で指定されています。

FROM 
    " . DB_PREFIX . "auction_media am, " . DB_PREFIX . "winners w WHERE

テーブル名とエイリアスの間に AS を入れる人もいます。

于 2012-05-13T06:45:29.140 に答える
4

MySQLエイリアスについて言及しています。

winners w、ここwで勝者のテーブルを表します

書く代わりに:

winners.is_add, winners.dd_active_date

あなたは短く書くことができます:

w.is_add, w.dd_active_date

についても同様ですauction_media am

于 2012-05-13T06:45:50.760 に答える
3

ここで w.am.は tablewinnersとのエイリアスですauction_media。両方のテーブルに同じフィールドがあり、それを示していると仮定すると、このエイリアスはそれらを区別するのに役立ちます。

ありがとう

于 2012-05-13T06:49:48.673 に答える
2

amauction_mediatalbeの別名でwあり、table の別名ですwinner。基本的に am in the query は、クエリするテーブルを指定します。2 つのテーブルのフィールド間の競合を避けるための結合クエリでは、テーブル名を使用するのが最善です。エイリアシングは、長いテーブル名を簡単に処理できるようにするための手段にすぎません。

于 2012-05-13T06:47:02.237 に答える