SQLite组从另一个表中连接,多个连接
sql查询有问题。绝对不是SQL专家SQLite组从另一个表中连接,多个连接,sql,sqlite,Sql,Sqlite,sql查询有问题。绝对不是SQL专家 选择 交易。*, 类别。*, 组_CONCAT(tags.tagName)作为concatTags 来自交易 内连接范畴 在事务上.category=categories.categoryId 左连接TransactionTagRelationas ttr ON transactions.transactionId=ttr.transactionId 左连接标记 在tags.tagId=ttr.tagId; (还有where和group by,但我认为这与
选择
交易。*,
类别。*,
组_CONCAT(tags.tagName)作为concatTags
来自交易
内连接范畴
在事务上.category=categories.categoryId
左连接TransactionTagRelationas ttr
ON transactions.transactionId=ttr.transactionId
左连接标记
在tags.tagId=ttr.tagId;
(还有where和group by,但我认为这与问题无关)
我试图得到:
transactionId1, ...otherStuff..., "tagId1,tagId2,tagId3"
transactionId2, ...otherStuff..., "tagId1,tagId3"
我现在看到的似乎是将标签合并到一个事务或其他事务中。我尝试在末尾按transactionID添加一个组,但由于某些原因,它给出了一个语法错误。我有一种感觉,我的连接不正确,但我无法得到更好的结果。执行以下操作:
SELECT t.*, c.*,
(SELECT GROUP_CONCAT(tg.tagName)
FROM TransactionTagRelation ttr JOIN
Tags tg
ON tg.tagId = ttr.tagId
WHERE t.transactionId = ttr.transactionId
) as concatTags
FROM transactions t JOIN
categories c
ON t.category = c.categoryId;
这消除了外部查询中的
分组依据
,并允许您在选择
中使用t.*
和c.*
,如果我想在此查询中使用标记进行筛选,该怎么办?(为什么我的分组依据
导致错误?)