草庐IT

join_group

全部标签

php - 多表JOIN返回重复结果,类似facebook的事件墙

快速总结:我有一个社交网站,用户可以在其中关注/发布/投票等。我正在为每个用户的个人资料添加一个新的类似facebook的事件墙功能。我已经在这方面工作了几天,但似乎无法让它正常工作。我想要的是,就像我提到的facebook墙一样......当访问者访问用户的个人资料时,该用户的事件将显示,无论他们最近对帖子“投票”,评论还是发布了他们自己的东西,我希望它显示在他们的个人资料中,当然,将最新的条目放在最上面。我现在遇到的问题是:有些东西显示了两次,而且没有按最近的排序。我在这里使用3个表(我只发布了我正在使用的列):Tablestructurefortablevotes_postsFi

mysql view with group by - 性能问题

我有一个收集网页性能数据的表格。有多台机器,每隔10分钟测试多个站点,所以目前我有大约700,000行(920MB),每天有+/-50,000新行。表格来源:SETSQL_MODE="NO_AUTO_VALUE_ON_ZERO";CREATETABLE`http_perf_raw_log`(`run_dt`int(11)DEFAULTNULL,`dataset`varchar(64)DEFAULTNULL,`runner`varchar(64)DEFAULTNULL,`site`varchar(128)DEFAULTNULL,`machine`varchar(32)DEFAULTNUL

mysql - SQL 性能 : Which is quicker? IN() 与 JOIN

这是一个我从未得到明确答案的问题。我在这个例子中使用的是MySQL。给定一组相当大的值(比如500)。使用这些值和IN()子句搜索表是否更快:SELECT*FROMtableWHEREfieldIN(values)或者通过在内存中创建一个临时表,用值填充它并将它连接到正在搜索的表中:CREATETEMPORARYTABLE`temp_table`(`field`varchar(255)NOTNULL)ENGINE=MyISAMDEFAULTCHARSET=latin1;INSERTINTOtemp_tableVALUES(values)SELECT*FROMtablet1JOINtem

mysql - GROUP_CONCAT() 中的条件

伙计们,我的数据库中有以下表格位置id(主键)姓名项目id(主键)location_id(外键=>位置)项目名称里程碑id(主键)姓名状态id(主键)状态项目里程碑id(主键)project_id(外键=>项目)milestone_id(外键=>里程碑)status_id(外键=>状态)在这里,为了列出所有项目的所有里程碑(状态为9),我使用以下查询SELECTprojects.projectname,locations.name,DATE_FORMAT(projects.created_at,'%d-%m-%y')asprojectdate,GROUP_CONCAT(mileston

mysql - MySQL 查询的 GROUP BY 部分中的 bool 逻辑

我目前有一个客户表,其中有重复的客户。我想选择一个唯一的客户列表,没有重复的家庭电话或手机。因此,如果任何客户与另一位客户拥有相同的家庭电话或手机,我不想从查询中返回该客户。一个警告——如果homephone或cellphone是空的,那么我显然不想在防重复逻辑中将其计入,因为有些客户只有homephone,或者只有cellphone。这是我当前的查询,它返回家庭电话和手机的唯一行。SELECTid,firstname,lastname,homephone,cellphone,city,state,zip,country,FROMcustomersWHERE(homephone!=""

php - 是否可以使用 Codeigniter Active Record 更新 JOINed 表?

这是我想做的functionedit_save($data,$post_id,$user_id){$this->db->where('post.user_id',$user_id);$this->db->where('post.post_id',$post_id);$this->db->join('data','post.data_id_fk=data.data_id','left');$this->db->update('post',$data);}“post”表需要与“data”左连接。当我运行上面的命令时,我收到一条SQL错误,指出未找到“数据”表中的字段之一。有什么建议吗?更多

php - MYSQL 获取分配给多个 "categories"的结果可能使用 JOIN?

我是mysql世界的新手,我在从数据库中获取所需数据时遇到了一些问题。我有2个表是...结果ID|TITLE|LOTSOFOTHERDATA|1|res1||2|res2||3|res3||4|res4||5|res5||类别ID|RESULT_ID|CATEGORYNAME|1|1|purchase|2|1|single_family|3|1|conventional|4|2|usda|5|3|somecategory|我正在尝试创建一个查询,该查询将选择属于查询中提供的所有类别的结果。例如,本例中的purchase&single_family&conventional查询将返回结果

mysql count group by order by optimization

我有一个表来存储posts的tagnametable:tagnametags|pidfestival|10034NewYorkFashionWeek|10034festival|10035car|10036...该表现在已经有590,000条记录。现在我想从此表中获取前10个最受欢迎的标签。SELECTtags,COUNT(*)asNumFROMtagnameGROUPBYtagsORDERBYNumDESC这将花费23.88秒。返回358种标签tags|Numfestival|7201art|6988gift|6755...即使在my.cnf中,如何优化此查询?我试图为标签添加索引,

mysql - 使用 WHERE 选择 LEFT/RIGHT JOIN 并返回 NULL

我需要将以下两个有效查询转换为一个查询,但所有内容由于各种原因,我尝试在我身上死去。我的最终结果是尝试列出所有手头上的软件,并显示为所查询的特定PC安装了哪些软件,哪些未安装。对于已安装的软件,列出名称,否则为名称显示NULL。我已经在where子句中尝试了一些子选择语句,这些语句给了我一个没有错误的结果,但不是正确的结果。感谢您的帮助。qry1SELECTdevice_software.sw_idFROMSoftware_deviceLEFTJOINDeviceONSoftware_device.d_id=Device.d_idWHEREDevice.d_id=1;qry2SELEC

mysql - 在 SQL INNER JOIN 中使用额外的 WHERE

$sql="SELECTevents.*,leagues.lnameasleagueName,leagues.aliasnameasAliasName,t1.tnameasteam1_name,t2.tnameasteam2_nameFROMeventsINNERJOINleaguesONevents.leagueid=leagues.idINNERJOINteamsASt1ONevents.teamhid=t1.teamidINNERJOINteamsASt2ONevents.teamaid=t2.teamidWHEREsdate='1352835000'";它给出了带有COLUMN