Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在列内联接数据,而不是合并列_Sql_Sqlite - Fatal编程技术网

Sql 在列内联接数据,而不是合并列

Sql 在列内联接数据,而不是合并列,sql,sqlite,Sql,Sqlite,我有一个连接我想要的所有列的查询: select * from Customer c inner join Tier t on c.TierId = t.Id 但是,我不希望所有列合并。我希望有一个层列,然后在该列中有完整的层记录(因为我要映射到json,它必须是这种格式) 如何创建这样的子组 我试过: select *, Tier = (select * from Tier t where t.Id = c.TierId ) from Customer c inner join Tier t

我有一个连接我想要的所有列的查询:

select * from Customer c
inner join Tier t on c.TierId = t.Id
但是,我不希望所有列合并。我希望有一个
列,然后在该列中有完整的层记录(因为我要映射到json,它必须是这种格式)

如何创建这样的子组

我试过:

select *, Tier = (select * from Tier t where t.Id = c.TierId ) from Customer c
inner join Tier t on c.TierId = t.Id
有人能指出正确的方向吗

编辑:

所以我想要这样的东西:

- CustomerID
- CustomerName
- CreatedDate
- Tier <-- all tier columns as a subgroup like when you group by
    - TierId
    - TierName
SELECT ("[" || column1 || ", " || column2 || "]") AS tier FROM Tier
-客户ID
-客户名称
-创建数据

-第层您是否只想从第
层中选择一列?明确说明所需的列:

select t.tier, c.*
from Customer c inner join
     Tier t
     on c.TierId = t.Id;

看起来您需要的是sql。 查询的内容如下所示:

SELECT CONCAT("[", column1, ", ", column2, "]") AS tier FROM Tier
SQLite不支持CONCAT,因此必须像下面这样使用| |运算符:

- CustomerID
- CustomerName
- CreatedDate
- Tier <-- all tier columns as a subgroup like when you group by
    - TierId
    - TierName
SELECT ("[" || column1 || ", " || column2 || "]") AS tier FROM Tier
括号将在JSON中将其标记为数组,如果需要,可以将其删除

您还可以将columnname添加到结果中,只需将其作为字符串添加,以使其更精确


注意:您将无法像数组一样访问值,因为这只是将值合并到字符串中。

选择层。*从…
?预期的输出应该是什么样的?抱歉,我使用的是SQLITE,所以您实际想要的是生成包含JSON对象的列?不,我正在使用的库应该能够将其转换为json,我只需要输入一个以正确结构返回数据的查询。我需要一个名为Tier的列,其中包含整个Tier rowunknown数据库函数Concatrue,我没有看到您使用SQLite并立即更新我的答案的编辑:)嗨,我更新了我的答案。我想选择所有列作为一个subgroup@Guerrilla . . . 我不知道SQL Server中存在这样的东西。您可以将它们组合为JSON字符串,也可以将它们组合在一起,或者使用命名约定。