Viewsクエリの条件式にサブクエリを追加する方法

カテゴリ Views コアバージョン 8.4x 関連モジュール hook_views_query_alter

modules/custom/your_module/your_module.module

/**
 * @param \Drupal\views\ViewExecutable $view
 * @param \Drupal\views\Plugin\views\query\QueryPluginBase $query
 */
function your_module_views_query_alter(ViewExecutable $view, QueryPluginBase $query) {
  if ($view->id() == 'your_view_id') {
    $query->addWhereExpression(
      $whereGroup,
      'node__field_xxxxx_value = (' .
      'SELECT MAX(c.field_yyyyy_value) FROM node__field_yyyyy c ' .
      'INNER JOIN node__field_zzzzz i ON i.entity_id = c.entity_id AND i.deleted = 0 ' .
      'WHERE c.deleted = 0 ' .
      'AND i.field_zzzzz_value = node__field_zzzzz.field_zzzzz_value' .
      ')');
  }
}

OTHER FAQ

Drupal開発・運用の疑問/質問の答えはここに

無料ユーザー登録すると質問できます。

カテゴリ降順で並び替える Core Ver. 関連モジュール タイトル
ダウンロード 6.x Views Bonus Pack Viewsで表示した内容をCSVダウンロード
チューニング 7.26 PHP DrupalはNginxで動く?
テーマ 7.34 スマホ、PCおよびアプリを同時に運用可能なおすすめのテーマはありますでしょうか?
テーマ 8.3x Block Cache Theme 管理ページから作成したカスタムブロックを非キャッシュ化する方法
テーマ 8.3x Contribute themes drupal8-寄贈テーマの動向
テーマ 7.23 hook ページや状況によってテーマを切り替える
テーマ 8.9.x Twig Twig で 月末日を算出する方法
テーマ 8.9.x patch パッチ 開発環境のファイル変更を本番環境にパッチでデプロイする方法(画像含まず)
テーマ 8.4x hook_preprocess_html bodyタグにnode idやaliasのClassを追加する方法
テーマ 8.7.x Bartikのtwigについて
テーマ 8.3x Theme drupal8 で パスに応じたページテンプレート名を利用する方法
テーマ 8.9.x スマホに向いたテーマについて
テーマ 8.3x Core Twig開発用の設定
テーマ 7.56 field レンダリング配列内に「ラベル非表示」を指定する方法
テーマ 7.15 CSS Injector 簡単にCSSを追加したい
ニュースレター 7.34 Simple news Simplenewsで追加顧客(リスト)だけにニュースレターを配信する方法
パフォーマンス 7.34 Server お金をかけないで冗長化するには
フォーム 8.9.x Views Views exposed filterのフォームに#default_valueを仕込む方法
フォーム 8.6.x JavaScript 特定のformに動的にJavaScriptをロードする方法
フォーム 8.6.x JavaScript 特定のformにJavaScriptを紐付ける方法

ページ