PHP: как получить уникальные значения между двумя объектами - PullRequest
0 голосов
/ 16 января 2012

Цель: получить уникальные значения в $ resultSecond

Итак, у меня есть два объекта.

$ result и $ resultSecond

Я хочу получить значения, которые являются уникальными для $ resultSecond и равны НЕ в результате $.

Я пытался использовать array_diff (). Это не сработало, поскольку они являются объектами. Я думаю.

Ниже приведен код, по которому я получаю данные.

$result = db_query("
SELECT entity_id FROM field_data_field_date
WHERE bundle='postit' AND field_date_value > ".$customvishaltime." ");

$resultSecond = db_query("
SELECT entity_id FROM field_data_field_days
WHERE bundle='postit' AND field_days_value > ".$customvishaltime." ");

Согласно drupal возвращение db_query является подготовленным объектом оператора. Понятия не имею, что это значит.

Справка:

Для db_query http://api.drupal.org/api/drupal/includes--database--database.inc/function/db_query/7

  • Вносили изменения в соответствии с запросом.

1 Ответ

0 голосов
/ 23 января 2012

Вам лучше сделать это как запрос левого соединения:

$result = db_query("SELECT q2.entity_id 
                    FROM (
                           SELECT entity_id FROM field_data_field_days
                           WHERE bundle='postit' AND field_days_value > %f
                          ) AS q2 LEFT JOIN (

                           SELECT entity_id FROM field_data_field_date
                           WHERE bundle='postit' AND field_date_value > %f

                      ) AS q1 ON q2.entity_id = q1.entity_id

                    WHERE q1.entity_id IS NULL", $customvishaltime, $customvishaltime);
...