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

MySQL合并同一行中不同表中的列

赫连开畅
2023-03-14

我使用嵌套的Select语句从表1中获得单行结果,我需要在同一行的末尾追加表3中的另一列(COLX)。我试过联合,但结果是两行。有什么建议吗?

SELECT COL1,COL2,COL3 
FROM `table1` 
where COL1 IN ( 
  SELECT table2.COL1 FROM `table2` 
  where table2.START_HOUR <= HOUR(NOW()) 
  AND 
  table2.END_HOUR >  HOUR(NOW()) 
  AND 
  table2.COLZ IN (
    SELECT IFNULL((SELECT COLX from `table3` WHERE COLY = 12345),'B'))) 
    Limit 1

table2.colz和table3.colx是用来匹配条目的ID。这两个最终结果都符合要求。

编辑(进一步解释我的表结构)

table1
COL1|COL2|COL3

table2
COl1|START_HOUR|END_HOUR|COLZ

table3
COLX|COLY

COLX是表3的ID,以匹配表2中的COLZ

表2 ID中的COL1与表1中的COL1匹配

结果我需要的是表1.col1,表1.col2,表1.col3,表2.col1,表2.colz,表3.colx

where where表3.Coly=12345

共有1个答案

公西马鲁
2023-03-14

如果我读得很清楚,您的table2.colz和table3.colx是与表1匹配的ID;

所以您应该做一个join语句。大概是这样的:

SELECT COL1,COL2,COL3 
FROM `table1` t1
JOIN (
 SELECT table2.COL1, table2.colz FROM `table2` 
  WHERE table2.START_HOUR <= HOUR(NOW()) 
  AND 
  table2.END_HOUR >  HOUR(NOW()))
) t2 on t1.col1 = t2.col1
JOIN ( SELECT IFNULL((SELECT COLX from `table3` WHERE COLY = 12345),'B')) t3 on t3.colx = t2.colz

我没有尝试过这个代码,所以他们可能是一些错误。

 类似资料:
  • 我正在寻找一种方法来合并特定行值从多个电子表格时,某些验证得到满足。 场景:我目前有Sheet1、Sheet2、Sheet3,我想要的是在满足验证时将Sheet2和Sheet3中的数据合并到Sheet1中。 表1: 第2张: 第3张: 基于上述示例,我在sheet1单元格A2中使用了此函数 因此,如果列E“类型”是“新玩家”(验证),它会自动添加表2中的行值。 我想要的是,如果类型为“New Pl

  • 我想运行一个mysql查询,从一个表中选择所有行,,其中列的值在另一列()的所有值中的任何位置都不存在。 以下是我的表格的简化版本,其中包含以下内容: 我的问题是: 在本例中,我希望选择标题为和的行,但我的查询没有返回任何行。 以下是表格结构:

  • 我正在展示构造JTable的方法,错误是在< code > for(int I = 1;我 上图中列出的行是mysql表中的最后一行

  • 问题内容: 我有表A: 我有表B: 我希望结果是这样的:是否有任何解决方案可以让我根据event_date对其进行组合和排序,例如一张桌子,像这样: 这样我就可以使用while循环或mysql_fetch_assoc之类的内容来显示内容 问题答案: 基本上,您需要:

  • 我正在尝试合并两个不同类型的列表。我得到了两个不同的API响应从改造在一个android应用程序,第一个列表是一个电影列表定义为 公共类列表{ 我通过以下操作成功地从API中检索到列表 然后,我尝试将一个类型列表和一个类型字符串列表组合起来,以创建一个新类ListingAndImage(字符串是一个URL,我将加载到imageview中) 我的问题是,哪种方式最好将这两个列表组合起来,形成一个列表

  • 我有稍微不同的选择查询从同一个表中读取数据。 和正在更改。 在Laravel中,我最终为每种类型使用了1个查询,但是有10种类型,这意味着10 db连接——这不好。 将这些查询合并到一个查询中,以便建立一个数据库连接以获取所有数据的好方法是什么? (我正在寻找Laravel查询生成器实现这一点的方法)