当前位置: 首页 > 知识库问答 >
问题:

配置项活动记录,从多个表中选择记录

南门朗
2023-03-14

因此,我希望使用CI活动记录获得最终输出,作为产品列表及其详细信息。

共有1个答案

傅树
2023-03-14

举个例子:

Create table #Product(id int, name varchar(100));
Create table #Product_detail(id int, product_id int, detail varchar(100));

insert into #Product values
(1,'Item1'),
(2,'Item2')


insert into #Product_detail values
(1,1,20),
(2,1,10),
(3,1,40),
(4,2,70),
(5,2,50)

这是您的基本查询:

select 
a.*, b.price
from 
 #product a inner join
 (select product_id, min(price) price
  from #product_detail
  group by product_id
 ) b
on a.id = b.product_id

在配置项中,尝试执行以下操作:

$var = $this->db->query("select a.*, b.price from #product a 
                         inner join
                        (select product_id, min(price) price
                         from #product_detail
                         group by product_id
                         ) b
                        on a.id = b.product_id")->result_array();
id          name   price
----------- ------ -----------
1           Item1  10
2           Item2  50
 类似资料:
  • 问题内容: 我有一个这样的SQL语句: 编辑 : 此SQL查询给出以下结果: 但是由于某些要求,我需要这样的输出: 意思是说每个位置需要输出4次。 请帮助如何获得相同的。 问题答案: 如果不是一个常数,而是(如@xQbert指出/要求的)是表的行数,则可以使用以下命令: 如果没有任何查询(但是很复杂),则可以将其用于4个副本: 或此副本:

  • 由此我从NetBeans得到以下错误消息: 所有异常消息都写入控制台,包括用户日志的消息。所以我知道两个伐木工都在工作。记录器附加器写入文件OK。userLog记录器不会创建任何文件,它使用几乎相同的附加器。 看来我还没有正确地命名一些东西来允许log4j2找到记录器。我试过各种命名的组合来弄对它,但我搞不清问题出在哪里。 我必须在每个类的记录器初始化中包含类名吗? 编辑:我需要包含包名。我花了一

  • 问题内容: 有没有办法一次插入多个记录而不是一次插入? 我有一个非常丑陋的耙子任务,正在做以下事情… 这必须非常低效,并且必须有更好的方法… 问题答案: 该方法也将数组作为参数。 但是,它仍然对每个条目执行一个SQL查询,而不是单个SQL查询。它效率更高,因为它只需要在后台创建一个activerecord对象。 如果要同时从同一客户端插入许多行,请使用带有多个VALUES列表的INSERT语句一次

  • 问题内容: 我试图从看起来像这样的数据库表结果中选择前2条记录 我试过这个查询 但是有些主题,例如失踪的地方,我什至尝试了以下链接的建议 如何选择每个组的前N行? 但是我为每个受检者得到两个以上 我究竟做错了什么? 问题答案: 您可以使用相关的子查询: 该查询通过串联三列来构造单列主键。如果您有真正的主键(如),则可以用代替。 SQL Fiddle中的示例。

  • 问题内容: MySQL语句中是否可以通过> = NOW()-1排序记录(通过日期戳),以便选择从今天到今天的所有记录? 问题答案: 从日期/时间函数的文档来看,您应该能够执行以下操作:

  • 问题内容: 我继承了具有以下结构的表: 是一个标识字段和主键,并且and字段上有非唯一索引。 什么是最有效的方式来获得每个项目名称的最新记录,即在上述行的表 1 , 4 和 6 ,因为他们是最先进的日期项物品应归还 一 , 乙 和 Ç 分别。 问题答案: SQL Server 2005(开始):