2013-10-10 3 views
0

В базе данных есть таблицы database_product и database_orders, которые выбираются с использованием p.rid и o.userid. Как определить p и o, чтобы указать на database_product и database_orders?Идентификаторы таблицы MySql в операторах вставки

$query = $wpdb->prepare(" 
     SELECT p.rid, o.userid 
     FROM {$this->dbtable}_orders o 
     INNER JOIN {$this->dbtable}_product p ON p.productid = o.productid AND p.status = 'active' 
     WHERE o.oid = %d AND o.transaction_id = %s 
     LIMIT 1 
     ", 
     $oid, $tid 
    ); 

ответ

1

В определении запроса подразумевается ключевое слово «как». Прочитайте запрос следующим образом:

SELECT p.rid, o.userid 
FROM {$this->dbtable}_orders as o 
INNER JOIN {$this->dbtable}_product as p ON p.productid = o.productid AND p.status = 'active' 
WHERE o.oid = %d AND o.transaction_id = %s 
LIMIT 1 

Вы можете использовать «в качестве» ключевых слов для таблиц псевдонимов помогают вам написать короче, более ясно запросы

Проверить http://dev.mysql.com/doc/refman/5.0/en/join.html Подробности

+0

Я рекомендую всегда использовать ключевое слово «как», чтобы запрос был более читабельным и явным, что был назначен псевдоним. Это также помогает избежать других синтаксических ошибок, если вы склонны к сбросу запятых или других опечаток. –

0

В вашем выборе, заявление

{$this->dbtable}_orders o 

Forexample, говорит о том, что {$ this-> dbtable} _orders имеет "о" в качестве псевдонима. Таким образом, вы можете ссылаться на таблицу как «o» в других выражениях.

Смежные вопросы