Mysql 使用一些默认值左连接
我正在尝试构建一个查询,该查询将采用一些默认值,并与一个表保持连接。这只是为了在主查询(第二个)与任何行不匹配的情况下允许至少一个结果,因此可能返回空的结果集 我的问题大致如下:Mysql 使用一些默认值左连接,mysql,sql,count,group-by,left-join,Mysql,Sql,Count,Group By,Left Join,我正在尝试构建一个查询,该查询将采用一些默认值,并与一个表保持连接。这只是为了在主查询(第二个)与任何行不匹配的情况下允许至少一个结果,因此可能返回空的结果集 我的问题大致如下: SELECT * FROM( (SELECT 'test' as `column1`, 'test' as `column2`, 0 as c) t1 LEFT JOIN (SELECT `column1`, `column2`, COUNT(*) as c FROM `
SELECT * FROM(
(SELECT 'test' as `column1`, 'test' as `column2`, 0 as c) t1
LEFT JOIN
(SELECT `column1`, `column2`, COUNT(*) as c
FROM `my_table`
WHERE `status` = 1
GROUP BY column1, column2) t2
)
它在phpmyadmin上显示mysql错误,如下所示:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 't2 )' at line 7
请问这个查询有什么问题?我想这就是您想要的查询:
SELECT t1.column1, t2.column2, coalesce(t2.c, 0)
FROM (SELECT 'test' as `column1`, 'test' as `column2`, 0 as c
) t1 LEFT JOIN
(SELECT `column1`, `column2`, COUNT(*) as c
FROM `my_table`
WHERE `status` = 1
GROUP BY column1, column2
) t2
on t1.column1 = t2.column1 and t1.column2 = t2.column2;
您的查询不完整。例如,它没有关于子句的
。嗨,谢谢你的提示。然而,像您给出的那样修改我的查询,我面临另一个问题“#1267-非法混合排序规则(utf8_general_ci,强制)和操作“=”的(latin1_swedish_ci,隐式)。这两列都是“latin1_swedish_ci”排序规则类型。请告诉我如何修复此错误?听起来您的数据库排序规则与表排序规则不同。使用COLLATE
关键字。从这里开始:。感谢您为解决该问题提供了很大帮助。但是,我现在有另一个关于手动生成的表t1的问题。虽然查询与普通查询一样工作,但我的实现在“触发器”中,并且存在抛出错误。它的意思是“on子句中的未知列t1.column1”。触发器不接受手动生成的表吗?请问如何从中恢复?@Rana。触发器中没有这样的限制。我建议你问另一个问题,在哪里张贴你正在使用的触发代码。