如何在 db_select drupal 7 中使用最近记录的连接

Posted

技术标签:

【中文标题】如何在 db_select drupal 7 中使用最近记录的连接【英文标题】:How to use join on recent record in db_select drupal 7 【发布时间】:2018-08-20 10:12:04 【问题描述】:

我有两张桌子。

Table One 
xx
yy
zz

Table Two
xx-3
xx-2
xx-1
yy-2
yy-1
zz-4
zz-3
zz-2
zz-1

我想在这两个表之间使用连接,以便它将表二中的最新记录用于表一的每条记录。 即 xx 加入 xx-3 yy 加入 yy-2 和 zz 加入 zz-4

查询将如下所示:

$query = db_select('One', 'o');
$query->leftJoin('Two', 't', 't.column1 = o.column1');
$query->fields('o',array('column1','column2'));
$query->fields('t',array('column1','column2'));
$query->orderBy('o.column1', 'DESC');

如何在 Drupal 7 中使用 db_select 做到这一点?

【问题讨论】:

请在分隔列中定义您的表格字段。 为什么要进行自定义查询?如果您想这样做,请使用一些框架,而不是 cms。使用视图模块进行查询。 【参考方案1】:

试试这个代码

$query = db_select('Two', 't');
$query->join('One', 'o', 'o.column1 = t.column1');
$query->fields('t',array('column1','column2'));
$query->orderBy('t.column1', 'DESC');
$res = $query->execute()->fetchAll();

谢谢!

【讨论】:

好的,我更新了我的答案,因为你定义了一个表只有一列,所以你只需要获取两个表字段,现在试试。

以上是关于如何在 db_select drupal 7 中使用最近记录的连接的主要内容,如果未能解决你的问题,请参考以下文章

Drupal 7 - 不区分大小写的 LIKE 与 db_select

Drupal 7上的db_select() - 字段问题

如何从drupal 7中选择查询

如何使用drupal 7将所有值插入数据库

Drupal 7 OR条件具有一系列AND条件

Drupal 7 node_save在cron期间不保存计算字段