【mysql联查中使用if和group by会让你的结果不是你想要的】教程文章相关的互联网学习教程文章

MySQL Group_Concat重复值【代码】

我正在开发一个名为PHP-Bouncer的开源项目,我正在为它编写一个MySQL查询问题.基本上我们有三个表:BouncerRoles,PageInRole和BouncerPageOverrides. BouncerRoles包含访问级别,另外两个表通过外键链接回BouncerRoles并提供多个附加数据条目.我编写了以下查询以尝试同时提取我需要的所有角色数据:select BouncerRoles.RoleID, BouncerRoles.RoleName, GROUP_CONCAT(PageInRole.PageName separator '|') as ProvidedPages, GROUP_...

mysql group by并对每个组进行排序【代码】

我有下表:ID NAME TIME 1 A 0 2 A 3 3 B 1 我使用下面的查询产生:SELECT * FROM `table` GROUP BY `NAME`ID NAME TIME 1 A 0 3 B 1 我想使用GROUP BY生成这样的结果(按TIME列折扣排序):ID NAME TIME 2 A 3 3 B 1 解决方法: SELECT NAME, MAX(TIME) as TIME FROM table GROUP BY time ORDER BY time DESC

MySQL – 如何使用concat和group_concat将行值显示为列名【代码】

表格1:id | typeid | available| 0 | 1 | 12 | 0 | 2 | 44 |表2:typeid | typename | 1 | CL | 2 | ML |我有一个使用concat和group_concat的查询:select id,concat(group_concat(typename,available)) as types from table1 join table2 on table2.typeid=table1.typeid我的结果如下:id | types | 0 | CL12,ML44 |但我想像这样显示它:id | CL | M...

mysql – 键’group_key’的重复条目【代码】

我在MySQL中运行一个查询,我按四列分组并选择了很多东西,包括我正在分组的四个值.但是当我运行查询时出现此错误:Duplicate entry '92-0-10-7' for key 'group_key'92,0,10和7都是特定行的四个分组列的值(实际上,我检查过,有63行符合这些参数).但我不知道这意味着什么,或者如何正确运行我的查询. 我的查询:Create table table2 as Select round(x, 0) as x, round(a, 0) as a, round(b, 0) as b, c, d, e, f from table1 group by...

mysql – 如何使用GROUP BY获取每个组中的最新记录?【代码】

参见英文答案 > SQL select only rows with max value on a column 27个假设我有一个名为message的表,其中包含以下列:id | from_id | to_id | subject | message | timestamp我想只收到每个用户的最新消息,就像您在深入了解实际线程之前在FaceBook收件箱中看到的那样. 这个查询似乎让我接近我需要的结果:SELECT * FROM messages GROUP BY from_id但是,查询给了我每个用户最早的消息,而不是最...

MySQL 排错-解决MySQL非聚合列未包含在GROUP BY子句报错问题【代码】

排错-解决MySQL非聚合列未包含在GROUP BY子句报错问题 By:授客 QQ:1033553122 测试环境 win10 MySQL 5.7 问题描述: 执行类似以下mysql查询, SELECT id, name, count(*) AS cnt FROM case_table GROUP BY name 报错,如下: 服务器内部错误 (1055, "Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column case_table.id which is not functionally dependent on columns in GROUP BY c...

其他列的MySql Group By和Sum总值【代码】

我有两列像这样 我希望结果是狗6和大象2.到目前为止我做了什么(并且失败了)就是这个SELECT word, SUM(amount) FROM Data Group By ‘word’解决方法:删除WORD周围的单引号.它会导致列名称转换为字符串.SELECT word, SUM(amount) FROM Data Group By word

MySQL “only_full_group_by” 报错

报错提示:SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column atl.atl_order.id which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by。解决办法:在配置文件中注释掉 only_full_group_by 选项。添加如下配置:sql_mode = STRICT_TRANS_TABLES,NO_ZERO...

mysql – 来自GROUP_BY的两个LEFT JOIN的GROUP_CONCAT的奇怪重复行为【代码】

Here是我所有表格的结构和查询(请关注最后一个查询,如下所示).正如你在小提琴中看到的,这是当前的输出:+---------+-----------+-------+------------+--------------+ | user_id | user_name | score | reputation | top_two_tags | +---------+-----------+-------+------------+--------------+ | 1 | Jack | 0 | 18 | css,mysql | | 4 | James | 1 | 5 | html | | 2...

MySQL:不在GROUP BY中【代码】

该站点生成结果,但SELECT COUNT和SELECT查询与GROUP BY有两个不同的结果计数.这可能是由于phpmyadmin中显示的错误而不是网站上显示的错误. 查询:SELECT count(DISTINCT `name`) as `numrows` FROM `users` WHERE `verified` = '1'SELECT `name`, `type`, `language`, `code` FROM `users` WHERE `verified` = '1' GROUP BY `name` ORDER BY `count` DESC LIMIT 0, 25PhpMyAdmin提供以下错误:1055 – ‘main.users.type’ isn’t ...

PostgreSQL GROUP BY与MySQL不同?【代码】

我一直在将一些MySQL查询迁移到PostgreSQL以使用Heroku.我的大多数查询工作正常,但当我使用group by时,我仍然遇到类似的重复错误:ERROR: column “XYZ” must appear in the GROUP BY clause or be used inan aggregate function有人能告诉我我做错了什么吗? MySQL 100%工作:SELECT `availables`.* FROM `availables` INNER JOIN `rooms` ON `rooms`.id = `availables`.room_id WHERE (rooms.hotel_id = 5056 AND availables....

如何在MySQL的CONCAT中使用GROUP_CONCAT【代码】

如果我在MySQL中有一个包含以下数据的表:id Name Value 1 A 4 1 A 5 1 B 8 2 C 9如何将其变为以下格式?id Column 1 A:4,5,B:8 2 C:9我想我必须使用GROUP_CONCAT.但我不确定它是如何工作的.解决方法: select id, group_concat(`Name` separator ',') as `ColumnName` from (select id, concat(`Name`, ':',group...

MYSQL:如何在mysql GROUP BY查询中返回所有不同的行【代码】

我有表T和一些列和值T ======================== id | name | g1 | g2 =========================10 | abc | 1 | 114 | abc | 1 | 033 | abc | 1 | 042 | def | 1 | 0 52 | def | 1 | 163 | def | 2 | 066 | def | 2 | 067 | def | 2 | 074 | def | 1 | 0我想用group by子句选择所有distict行 我的疑问是select * from T group by name having max(g2) = 0我的预期...

mysql – 选择GROUP_CONCAT的多对多关系【代码】

我有3张桌子后,标签,tags_relationshippost:post_id, post_title.... tags:tag_id, tag_name... tags_relationship:tag_rel_id, tag_rel_post_id, tag_rel_tag_id如何通过tags_relationship表为每个帖子选择带有(tag1,tag2,…)格式的单列标签的所有帖子?解决方法:回答,所以问题可以结束. 找到解决方案SELECT p.*, GROUP_CONCAT(t.tag_name) tagged FROM tags_relation tr INNER JOIN posts p ON p.post_id = tr.rel_post_id ...

mysql – GROUP BY子句的别名?【代码】

在MySQL中,可以在SELECT子句(Cf. MySQL Reference)中创建的GROUP BY子句中使用别名. 我只是想知道为什么不能在GROUP BY中创建别名并在SELECT中使用它,后者遵循SELECT语句的执行顺序. 换句话说,为什么以下不合语法?SELECT region, SUM(population)FROM population_us_statesGROUP BYCASE state_nameWHEN 'CT' THEN 'New England'WHEN 'RI' THEN 'New England'WHEN 'MA' THEN 'New England'WHEN 'ME' THEN 'New England'WHEN 'NH' T...