草庐IT

join_group

全部标签

mysql - GROUP BY 与 INSERT IGNORE

嗨!我需要在mysql(5.1)上扫描一个非常大的表,表格大致是这样的:CREATETABLE`big_table`(`id`BIGINT(11)NOTNULLAUTO_INCREMENT,`main_id`INT(11)DEFAULTNULL,`key`VARCHAR(20)NOTNULL,PRIMARYKEY(`id`),KEY`main_id_key`(`main_id`,`key`),)ENGINE=INNODBAUTO_INCREMENT=2315678197DEFAULTCHARSET=utf8我需要将main_id+keys的所有唯一值放入一个新表中。使用以下查询需要花费

MySQL GROUP_CONCAT 和 DISTINCT

我有这样的tb1表:nameemaillinkjohnmyemail@gmail.comgooglejohnmyemail@gmail.comfacebookjohnmyemail2@gmail.comtwitter........andmore当我用查询调用数据时看起来像SELECTname,email,group_concat(DISTINCTlinkSEPARATOR'/')assourceFROMtb1groupbyemail结果是这样的:NAMEEMAILSOURCEjohnmyemail2@gmail.comtwitterjohnmyemail@gmail.comfaceb

php - 以cakephp group by table的格式在核心php中获取数据

我想检索cakephp格式的数据,比如groupbytable(model)喜欢:selectuser.*,category.*,area.*fromuserleftjoincategoryonuser.cat_id=category.idleftjoinareaonuser.area_id=area.idarray([0]=>Array([user]=>array([user_id]=>1[user_name]=>testuser)[category]=>array([category_id]=>1[category_name]=>testcat)[area]=>array([are

php - 优化大型数据库中的 JOIN ORDER BY RAND() mysql 查询

我正在做一个项目,它有一个很大的QuestionBank,为了测试添加到系统,20个问题在运行时基于以下查询:SELECTQuestion.*fromQuestionJOINTestONQuestion.Subject_ID=Test.Subject_IDANDQuestion.Question_Level=Test.Test_LevelORDERBYRAND()LIMIT20;但是,众所周知,MySQL的RAND()函数会杀死您的服务器,我一直在寻找更好的解决方案。结果EXPLAIN[上述查询]:+----+-------------+----------+------+------

MySQL 按问题分组 : incompatible with sql_mode=only_full_group_by

任务:显示每个商店购买次数最多的产品。3个表:商店、产品、付款。如果销售给1个商店的产品有平局​​,则选择哪个产品并不重要,只需选择其中一个即可。我对这个查询的groupby子句有疑问:SELECTshop_id,product_id,(SELECTCOUNT(*)FROMpaymentWHEREproduct.product_id=payment.product_id)soldFROMproductGROUPBYshop_idHAVINGMAX(sold)在MySQL5.6或更低版本中,此查询可以工作。这将是正确的结果:shop_id|product_id|sold113231351

SQL 在单个表上执行 INNER JOIN 的替代方法

我有一个大表(TokenFrequency),其中有数百万行。结构如下的TokenFrequency表:表-TokenFrequencyid-整数,主键来源-整数,外键token-字符计数-整数我的目标是选择其中两个源具有相同标记的所有行。例如,如果我的表看起来像这样:id---source---token---count1------1---------dog-------12------2---------cat--------23------3---------cat--------24------4---------pig--------55------5---------zo

sql - 对于 SQL,什么时候开始需要始终使用单词 "Inner Join"而不是隐式连接?

对于SQL,什么时候开始需要始终使用“InnerJoin”一词而不是通过以下方式隐式连接:select*fromt1,t2wheret1.ID=t2.ID;?是为了样式还是为了区分outerjoin还是有其他原因? 最佳答案 INNER和OUTERJOIN语法在SQL-92规范中被正式化。在许多数据库产品中,例如MySQL和SQLServer,您可以从内部联接中省略“INNER”一词,而只使用“JOIN”。同样,许多数据库产品允许您省略“OUTER”一词,而只使用“LEFTJOIN”或“RIGHTJOIN”来表示外部连接。*=或=*

sql - MySQL:如何在执行多个 JOINS 时对非重复值求和

我尝试从包含一些JOINS的查询中对列中的值求和。示例:SELECTp.idASproduct_id,SUM(out_details.out_details_quantity)ASstock_bought_last_month,SUM(order_details.order_quantity)ASstock_already_commandedFROMproductASpINNERJOINout_detailsONout_details.product_id=p.idINNERJOINorder_detailsONorder_details.product_id=p.idWHEREp.i

mysql - 如何使用 'greater than' 和 'group by' 创建连接?

我有一个包含一系列姓名、事件和日期的表格。我创建了一个与特定事件(evt5)相关的新字段“evt5_date”。每个名称可以有多个事件,每个事件的时间记录在evt_date字段中。两个事件evt1和evt2与evt5相关。我想将evt5第一次出现的日期插入evt5evt1和evt2行中。如果在evt1或evt2之后没有evt5,则该字段留空。所有这些都必须为每个name完成。有几千个不同的名字。我在下面的数据中只显示了2当前表数据-evt5_date中没有值nameevt_dateeventevt5_datename-12010-06-30evt1name-12009-10-30evt

php - MySQL 对 group by 中每条记录的子查询

这是较早问题的更高级续集。Here'salinktoanSQLFiddletomakethingsabitclearer我需要返回类似(针对每个位置)的内容:GroundFloor---------------Garage-RadiatorKitchen-Cooker-Fridge将会有比这更多的级别,但如果我能开始,我希望能够根据需要走得更远。谢谢 最佳答案 由于SQL无法返回您在上面格式化的嵌套记录,您只需要返回一个查询,该查询按楼层然后按sub_location对行进行排序。您将获得每一行重复的location和sub_loc