mysql - SPIP API SQL,在自定义表上左联接

标签 mysql sql join spip

使用 SPIP ,我正在尝试有一个系统,它会每天选择一篇随机文章。我需要存储当天的文章,主要原因有两个:

  • 确保每个人都有同一天的文章
  • 避免同一文章在前一天被第二次选中

为了能够存储所选项目,我创建了一个通用表:

CREATE TABLE IF NOT EXISTS `spip_random` (
  `id_random` bigint(21) NOT NULL AUTO_INCREMENT,
  `object` varchar(25) NOT NULL,
  `id_object` bigint(21) NOT NULL DEFAULT '0',
  `type` text NOT NULL,
  `date_picked` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`id_random`),
  KEY `object` (`object`,`id_object`),
  KEY `id_random` (`id_random`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

这里有一堆可以存储的行:

(1, 'article', 54, 'article_of_the_day', '2014-11-29 00:03:54')
(2, 'article', 198, 'article_of_the_day', '2014-11-30 09:32:03')
(3, 'article', 113, 'article_of_the_day', '2014-12-01 14:11:04')
(4, 'article', 3, 'article_of_the_day', '2014-12-02 11:52:28')

选择当日文章的脚本运行良好。


现在,当我尝试在 SPIP 循环中检索这篇文章时,我遇到了一个问题。我正在考虑使用这种循环:

<BOUCLE_day(ARTICLES spip_random) {par date_picked} {inverse} {0,1}>
    #ID_ARTICLE
</BOUCLE_day>

如 SPIP 文档 ( EN/FR ) 中所述,连接应该在 spip_articlesspip_random 之间完成,因为我有这两个字段:

  • 对象
  • id_object

但没有返回任何内容。

如果我尝试这个简单的循环,它会显示正确的 #ID_OBJECT:

<BOUCLE_day(spip_random) {par date_picked} {inverse} {0,1}>
    #ID_OBJECT
</BOUCLE_day>

我根本无法加入我的自定义表 (spip_random) 和 ARTICLES (spip_articles)。我错过了什么吗?

最佳答案

我终于找到了答案。

SPIP 使用法语作为其默认语言,包括函数、关键字和... SQL 列!

我需要使用 objetid_objet 来让这段代码工作(注意缺少的 c):

CREATE TABLE IF NOT EXISTS `spip_random` (
  `id_random` bigint(21) NOT NULL AUTO_INCREMENT,
  `objet` varchar(25) NOT NULL,
  `id_objet` bigint(21) NOT NULL DEFAULT '0',
  `type` text NOT NULL,
  `date_picked` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`id_random`),
  KEY `objet` (`objet`,`id_objet`),
  KEY `id_random` (`id_random`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

关于mysql - SPIP API SQL,在自定义表上左联接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27252212/

相关文章:

sql - mongoose 是否支持像 SQL 这样的选择中的虚拟字段

sql - MSSQL 和 TSQL 有什么区别?

MYSQL 跨多个表的计数查询

php - laravel 5.4 中的三个加入和分组

mysql - 从用户评分表中获取所有连续日期的条纹

php - Mysql 或 PHP 跳过数据库的第一行

sql - 在联合中共享行 - 分组依据?

sql - 在 SQL 中连接大表

Python/PyQT QString 不会插入到 MySQL 数据库中

MySQL 使 6.5m 行更新过滤器无错误地通过