草庐IT

join_all

全部标签

MYSQL LEFT JOIN 和 COUNT 和 GROUP BY

我发现了几个与该任务相关的线程,但都没有真正帮助我,或者我没有足够的经验来理解它。我正在使用mysql并有两个表user和user_rh。我想要一个用户名列表(按名称排序),其中包含user_rh中相应的条目数。`user``user_rh`------------------------------------|`uid`|`name`||`uid`|`zaid`|------------------------------------|1|Bob||2|4||2|John||2|7||3|Fred||3|2||4|Peter|----------------------------

MySQL 查询 : all records of one table plus count of another table

我有2个表:用户和图片。Picture表具有用户的键。所以基本上每个用户可以有多张图片,每张图片属于一个用户。现在,我正在尝试进行以下查询:我想选择所有用户信息加上他拥有的图片总数(即使它是0)。我怎样才能做到这一点?可能这听起来很简单,但我一直在尝试,但似乎找不到正确的查询。我唯一可以选择的是此信息,但仅适用于至少拥有1张图片的用户,这意味着图片表至少有该键的一条记录......但我也想考虑没有任何图片的用户.任何想法?谢谢! 最佳答案 您可能想尝试以下方法:SELECTu.name,IFNULL(sub_p.total,0)nu

SQL Join 从左表和右表返回空行

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:MySQL:FULLOUTERJOIN-HowdoImergeonecolumn?真正简单的问题,但我自己完全糊涂了。假设我有以下表格:tbl1id-count1一-7b-4d-2tbl2id-count2一-3c-4我想创建一个给出以下结果的表:温度表id-count1-count2一-7-3b-4-空c-空-4d-2-空我需要使用什么类型的联接?干杯,本

mysql outer join - 确定连接的行是否存在

我有两个具有相同主键的表,但一个比另一个大得多。我想知道哪些ID在较小的表中有一行。(在示例中,a较大,b较小)。现在,我正在使用带有CASE的OUTERJOIN来确定b值是否为NULL。它不起作用(总是得到1)。解决这个问题会很好,但必须有更好的方法。我应该怎么做?SELECTa.id,CASEb.idWHENNULLTHEN0ELSE1ENDASexistsFROMaLEFTOUTERJOINbONa.id=b.id; 最佳答案 这与您展示的逻辑相同,但代码更短:SELECTa.id,NOTISNULL(b.id)ASexist

Mysql LEFT Join查询在添加Count() mysql函数时只返回一行

我有这个让我头疼的mysql查询(演变两个表:Users和Files):SELECTUsers.GUID,Users.Name,Users.CreationDate,Files.Date,Count(Files.GUID)AsFilesCountFROMUsersLEFTJOINFilesONUsers.GUID=Files.UserGUIDWHEREUsers.Group='1'当我执行它时,它总是返回1行(这不是我想要的)。但是如果我删除它:Count(Files.Date)AsFilesCount它正确地返回了我期望的所有行。我基本上需要获取属于用户的文件数(以及用户信息)我的问

MySQL LEFT JOIN 返回空结果集

也许我错过了一些愚蠢的东西但是......我有m-to-m关系的三个表:CREATETABLEtbl_users(usr_idINTNOTNULLAUTO_INCREMENT,usr_nameVARCHAR(64)NOTNULLDEFAULT'',usr_surnameVARCHAR(64)NOTNULLDEFAULT'',usr_pwdVARCHAR(64)NOTNULL,usr_levelINT(1)NOTNULLDEFAULT0,PRIMARYKEY(usr_id))ENGINE=InnoDB;CREATETABLEtbl_houses(house_idINTNOTNULLAUT

mysql - INNER JOIN DISTINCT 与 MySQL

我有一个mysql问题。我有两个这样的表需要连接在一起。表格:idotherid21|12|13|24|2表2:otheridotherid21|12|13|24|2我正在使用:SELECTid,otheridFROMtableINNERJOINtable2ONtable.otherid2=table2.otherid2这给了我:idotherid1|11|22|12|23|33|44|34|4如您所见,我得到了重复的id,因为表2中的otherid2不是唯一的。我需要的是以某种方式进行INNERJOINDISTINCT,我只希望结果如下所示。不重复。这就是我想要的:idotherid

mysql - 何时为 MySQL (SQL) 使用 JOIN

我无法有效理解这两个查询之间的区别。select*frompersonp,mytlcmwherep.personid=m.personidandp.personid=3635select*frompersonpjoinmytlcmonp.personid=m.personidwherep.personid=3635在这种情况下,我认为两者都不会是性能更好的查询;但是,如果查询更复杂并处理更多数据会怎样。谢谢! 最佳答案 如果你想找到关于这个主题的更多信息,你可以尝试googling'joinvswhere'.以下是解决同一问题的其他

mysql - CakePHP:查找 ('count' ) 和 DISTINCT 字段与查找 ('all' ) 和 GROUP BY 字段

我正在CakePHP中构建查询,但无法在我的find('count')中使用GROUPBY语句,因为它会引发错误。因此,我在字段列表中使用了DISTINCT字段来代替GROUPBY语句。所以,从find('count',array('group'=>'field'))我现在有find('count',array('fields'=>'不同的字段'))在应用程序的另一部分,我使用find('all')来获取与上面相同的记录。在这里,我可以使用GROUPBY语句,所以我有:find('all',array('group'=>'field'))我的问题是:上述两个查询是否返回相同的结果?简而

mysql - SQl 查询中的 Sub-Query 和 JOIN 哪个更好?

谁能建议在这种情况下哪个更好:1:SELECTCOLUMN1,(SELECTCOLUMN2FROMTABLE2WHERE)ASCOLUMN2FROMTABLE12:SELECTT1.COLUMN1,T2.COLUMN2FROMTABLE1T1INNERJOINTABLE2T2ON 最佳答案 “更好”有几个轴......更好的表现更好的可读性更好的可维护性更好的灵active....所以,测试并找出(检查它们可能相同的计划)在旁观者看来,如果查询是等价的,我更喜欢连接取决于您的员工在这种情况下似乎不适用...更好通常只是一种权衡...