关于列中的选择查询 - mysql

Posted

技术标签:

【中文标题】关于列中的选择查询 - mysql【英文标题】:Regarding select query in the column 【发布时间】:2016-01-21 08:28:18 【问题描述】:

希望在主选择查询的列中具有从选择查询返回的多个列。得到mysql错误。我该怎么做?

SELECT test.val1, 
   (SELECT 
     cc.id, cc.nbr,cc.addr
     FROM
        (
          Select temptable.id ,temptable.nbr,temptable.addr
          from temptable
          inner join temptable2  on temptable2.id=temptable.id
        )  cc),
       test.val2,
       test.val3
 FROM test 
 innerjoin test2 on test.id=test2.id

【问题讨论】:

temptable 或 temptable2 是否以某种方式与 test 或 test2 表相关,或者您是否有意构建笛卡尔积。 【参考方案1】:

选择列表中的子查询必须返回 1 个字段和 1 个记录。如果您希望来自多个字段的值出现在单个列中,那么您可以使用concat() 或 concat_ws() mysql 函数将它们连接到单个字段中。如果你想将多个字段和多行组合成一个字段,那么上面提到的2个函数你需要group_concat()。

select concat_ws(';',field1, field2) from table

但是,我认为在这种特殊情况下,您可能希望将子查询放入 from 子句并在 select 子句中从那里引用列。

【讨论】:

【参考方案2】:

如果四个表相关,请尝试以下。

select tb1.tb_id, tb1.val1, tb2.tb_id from (select test.id as tb_id, val1, val2, val3 from test inner join test2 on test.id=test2.id) as tb1 join (select temptable. id as tb_id from temptable join temptable2 on temptable.id=temptable2.id) as tb2 on tb2.tb_id=tb1.tb_id;

【讨论】:

以上是关于关于列中的选择查询 - mysql的主要内容,如果未能解决你的问题,请参考以下文章

MySQL_关于JSON数据的查询

MySQL_关于JSON数据的查询

在 MySQL 中查询单个列中的多个值

关于 select 子句的查询

SQL查询列中的更多信息

excel 关于一次批量导入时,excel提取列中的中文与其他列组合成数组属性