Video

-------

id

source_low

source_med

source_high

Source

--------

id

duration

thumbnail

视频项目可以包含至少1个或最多3个源(源低,源med,源高).

这个想法与youtube相同,这意味着视频记录可以包含多种质量.因此,当我返回持续时间/缩略图时,我想检查哪个源存在并返回其中一个.

例如,如果视频具有source_low或source_med,则表示存在持续时间& source_low和source_med的缩略图,然后我只需要返回其中一个.

Codeigniter语法:

$this->db->select('v.*, sl.duration, sm.duration as duration_m, sh.duration as duration_h, sl.thumbnail, sm.thumbnail as thumbnail_m, sh.thumbnail as thumbnail_h');

$this->db->from('video as v');

$this->db->join('source as sl', 'v.source_low = sl.video_id', 'left');

$this->db->join('source as sm', 'v.source_med = sm.video_id', 'left');

$this->db->join('source as sh', 'v.source_high = sh.video_id', 'left');

$this->db->group_by('v.id');

SQL(缩略图与获取的方式相同):

SELECT v.*, sl.duration, sm.duration as duration_sm, sh.duration as duration_sh

FROM video as v

LEFT JOIN source as sl ON (v.source_low = sl.video_id)

LEFT JOIN source as sm ON (v.source_med = sm.video_id)

LEFT JOIN source as sh ON (v.source_high = sh.video_id)

GROUP BY v.id;

现在我可以返回所有结果,包括空值,但是如何只返回一个持续时间和一个缩略图?

谢谢你的帮助

更新:

只是更新查询,但似乎codeigniter在处理它时有一些错误,

任何的想法?谢谢

我的代码:

$this->db->select('v.*, COALESCE(b.duration, bt.duration, bc.duration) AS duration, COALESCE(b.thumbnail, bt.thumbnail, bc.thumbnail) AS thumbnail');

在SQL中:

Error Number: 1064

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS duration, COALESCE(b.thumbnail, `bt`.`thumbnail`, `bc`.`thumbnail)` AS thumbn' at line 1

SELECT `v`.*, `t`.`name`, `t`.`name_tw`, `t`.`name_cn`, COALESCE(b.duration, `bt`.`duration`, `bc`.`duration)` AS duration, COALESCE(b.thumbnail, `bt`.`thumbnail`, `bc`.`thumbnail)` AS thumbnail FROM (`video` as v) JOIN `teacher` as t ON `v`.`teacher_id` = `t`.`id` LEFT JOIN `brightcove` as b ON `v`.`video` = `b`.`video_id` LEFT JOIN `brightcove` as bt ON `v`.`video_tw` = `bt`.`video_id` LEFT JOIN `brightcove` as bc ON `v`.`video_cn` = `bc`.`video_id` WHERE `v`.`is_delete` = 0 AND `v`.`type` = 0 GROUP BY `v`.`id` ORDER BY `v`.`start_date` desc

php取mysql某列的值,php – 获取MYSQL中某些列为null的表中的值相关推荐

  1. php mysql获取新添加记录的id值_PHP获取MySql新增记录ID值的方法

    今天发现用mysql_insert_id()获取到的新增记录的id不正确, 虽然发现源代码的事务写的有问题,但是最根本的原因是,我插入数据的id类型是bigint型 获取MySql新增记录ID值的方法 ...

  2. cockroachdb mysql_CockroachDB学习笔记——[译]CockroachDB中的SQL:映射表中数据到键值存储...

    CockroachDB学习笔记--[译]CockroachDB中的SQL:映射表中数据到键值存储 原文标题:SQL in CockroachDB: Mapping Table Data to Key- ...

  3. oracle复制另一个字段,【学习笔记】Oracle存储过程 表中列不同时动态复制表中数据到另一个表中...

    天萃荷净 分享一篇关于Oracle存储过程实现表之间数据复制功能.两表中列不同,动态的将一表中的数据复制到另一个表中案例 因为要用到回收站功能,删除一条记录,要先放到一个delete表中,以便以后恢复 ...

  4. mysql伪列的使用,mysql伪列的妙用,mysql获取近几天的日期用来连表查询

    文章目录 写在前面 伪列的使用 初步 获取前几行 获取近几天的日期(用于关联查询) 配合UNION的妙用 UNION获取几行数据 获取近50天的日期(不使用其他表) 举一反三 写在前面 我们都知道or ...

  5. mysql表中字段数据类型_mysql数据表中字段的数据类型有哪些?

    数据表中字段的数据类型有:TINYINT.SMALLINT.MEDIUMINT.INT.INTEGE.DATETIME.DATE.TIMESTAMP.TIME.YEAR.CHAR.VARCHAR.TE ...

  6. mysql 主键重复则覆盖_mysql insert插入时实现如果数据表中主键重复则更新,没有重复则插入的四种方法...

    个人实例: INSERT INTO w_dashboard(dashboard_name, content, createTime) VALUES("aa","cc&qu ...

  7. jquery复选框组清空选中的值_jQuery获取复选框被选中数量及判断选择值的方法详解...

    这篇文章主要介绍了jQuery获取复选框被选中数量及判断选择值的方法,结合实例形式分析了jQuery操作复选框进行判定与统计的相关技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了jQuer ...

  8. mysql 不在另一个表中_MySQL选择查询从表中选择不在另一个表中的行?

    对于我们的示例,我们将创建两个表并应用"自然左联接"以从第二个表中不存在的表中获取行. 创建第一个表.mysql> create table FirstTableDemo - ...

  9. 查看数据库中的字段所在的表中或某值所在的表和字段

    ***********************************字段在哪个表中 select tab.name table_name, col.name column_name from sys ...

最新文章

  1. pythonweb开发-Web | 浅谈用Python进行Web开发
  2. 懂说话,让冲突、尴尬时刻都bye-bye
  3. 【android】EGL数据结构
  4. HDU-水饺基情 二维树状数组
  5. 在每个运行中运行多个查询_在Kubernetes中运行OpenEBS
  6. Python 爬虫 实例项目 大全
  7. java怎么使用floor_Java floor() 方法
  8. python 根据时间间隔删除文件夹内修改时间比较早的文件
  9. jsp判断json第一位_java 判断字符串是否为json格式
  10. switch的处理方法
  11. 硬核干货! 你的业务是否适合上链、上链有那些坑?dfuse、慢雾、MYKEY大佬为你为你指点迷津……...
  12. router阻止telnet自身的两种方法
  13. 20210706_IEEEDataPort免费订阅
  14. 远程服务器停止运行怎么回事,远程桌面连接已停止工作解决方法
  15. win7文件夹加密_小编还原win7系统文件夹加密码的步骤
  16. 华为未来是铺满鲜花还是荆棘遍布?
  17. 计算机软件的著作权和专利权法律保护资料
  18. 关于大数据,你应该知道的50个专业术语
  19. 列表的join方法,类方法formkeys,删除,集合,深浅拷贝赋值,冒泡排序
  20. maven集成docker插件进行打包镜像并推送私服

热门文章

  1. 虚拟机访问本地mysql_如何在本地远程连接linux虚拟机上面的mysql
  2. vue3安装_Vue 3.0正式发布了!
  3. efs文件解密软件_Pylocky勒索软件的受害者
  4. c语言屏蔽按键,VC实现让关闭按钮成灰色不可用的方法
  5. 用Keras搭建神经网络 简单模版(三)—— CNN 卷积神经网络(手写数字图片识别)...
  6. 为什么用clojure作为storm 的主要开发语言
  7. 软件工程作业汇总(网络14、15、16)
  8. SQL Server中Text和varchar(max)数据类型区别
  9. 算法导论笔记:32字符串匹配算法
  10. 【零基础学Java】—Scanner类的使用( 十)