草庐IT

mysql - 如果没有匹配项,则使用默认值执行 LEFT JOIN

首先,我什至不确定LEFTJOIN是否是做我想做的事情的最佳方式,所以我会尽力解释。我有2个表-一个包含站点列表,另一个包含角色列表。一个用户可能只有一个角色,但他们可能拥有与网站一样多的角色。表“站点”site_id|site_name|site_domain---------------------------------------1|SiteA|sitea.com2|SiteB|siteb.com表“角色”site_id|user_id|role_id---------------------------------1|1|11|2|12|2|2在我上面的例子中,用户1在一个网

php - 我需要做什么来更正这条 SQL 语句?

我有以下表格:products-包含库存中的产品。suppliers-包含供应商详细信息。product_category-包含产品类别的名称。product_suppliers-包含产品和供应商之间的关系。这里重要的可能是product_suppliers,所以这里是列:id//(auto-increment)prod_id//(idofproduct)sup_id//(idofsupplier)preferred//(1ifit'sthepreferredsupplierforthatproduct-0ifnot)cost_per_outer//(thissupplierspric

mysql - 数据步骤/SQL 加入/合并/联合 2 个数据集/表并删除相同的行/观察

比如我有2个这样的表datahave;inputname$status$;datalines;AaBbCc;;;;run;第二张表:dataaddon;inputname$status$;datalines;AaCfDdEeFfBz;;;;run;如何得到如下结果:BbCcCfDdEeFfBz行A-a与2个表中的行相同,因此已将其删除。我正在尝试使用左连接,但结果不正确。请帮助并提前致谢。我真的很感激。 最佳答案 另一种方式datahave;inputname$status$;datalines;AaBbCc;;;;run;data

php - 如何循环 JOIN

我在图片中有这个表格数据。它基本上由同一张表中的地名和它所属的其他地方组成。字段belongs_to指的是其他地方的id。这是我正在使用的查询:SELECTA.type,A.name_enASname_A,B.name_enASname_B,C.name_enASname_CFROMaddressASALEFTJOINaddressASBONA.belongs_to=B.idLEFTJOINaddressASCONB.belongs_to=C.idWHEREA.name_enLIKE'%".$_GET['name']."%'"当我输入“sy”时它工作正常:[type]=city[nam

MySQL - 3 个表,这个复杂的连接是否可行?

我有三个表:用户、组和关系。包含以下字段的用户表:usrID、usrName、usrPass、usrPts具有以下字段的表组:grpID、grpName、grpMinPts与字段的表关系:uID、gID可以通过两种方式将用户放入组中:如果收集组最小点数(users.usrPts>group.grpMinPtsORDERBYgroup.grpMinPtsDSCLIMIT1)如果他与组的关系是手动添加到关系表中的(用户ID作为uID提供,组ID作为gID在名为relation的表中提供)我可以创建一个查询,以确定每个用户(或一个特定的),他属于哪个组,但是,手动关系(使用关系表)应该比us

mysql - SQL 连接重复结果

我学习SQL的程度比平时稍微高一点,但我有点卡在这门课上。查询是从用户输入的出发地获取一家航空公司飞往(目的地)的所有机场。SELECTDISTINCTa.airline_name,GROUP_CONCAT(ap.city)ASgroupedDestinationsFROMroutesASrLEFTJOINairlinesASaONr.airline=a.airline_iataLEFTJOINairportsASapONr.destination=ap.airport_iataWHEREr.origin=?ANDa.active="Y"ANDr.codeshare!="Y"GROUP

mysql - 根据子查询替换列值

基本上,我有一个表,称它为regular,它为我提供了一周中给定日期的service_id,然后是另一个表,称它为exception,当service_id与通常情况不同时指定某些日期。将service_id视为不透明字符串。regular的结构:+-------------+------------+|day_of_week|service_id|+-------------+------------+|sunday|some_serv||monday|another||tuesday|another|(它会持续到一周的剩余时间,几天通常可以有相同的service_id)异常的结构:

mysql - 为什么这个左外连接会产生错误的结果?

我对以下关于OUTERJOIN的SQL(也许微不足道)感到困惑。我有2个小表emp和deptno即有员工及其部门的记录。他们的关系显然是1-N(但这无关紧要)。我正在尝试使用外部联接来查找没有员工在那里工作的部门。所以我认为正确的解决方案是OUTERJOIN。如果我执行以下操作:selectd.deptnoasd_deptno,e.deptnoase_deptnofromdeptdleftouterjoinempeond.deptno=e.deptno;我得到:d_deptnoe_deptno10,1010,1010,1020,2020,2020,2020,2020,2030,3030

mysql - 如何进行删除查询?

假设我有以下数据库表结构:A>-B--D其中>-是多对一关系,-现在我想删除与具有给定名称的D对应的所有A条目。有人会说DELETEFROMAJOINBONJOINCONJOINDONWHERED.name=?将是一个解决方案。遗憾的是,您似乎不能在DELETE查询中使用JOIN子句。另一种方法是使用子查询,如下所示:DELETEFROMAASelemWHEREelem.idIN(SELECTidFROMAJOINBONJOINCONJOINDONWHERED.name=?);虽然这在Oracle中可能有效,但MySQL不允许我这样做(我无法在要删除的表上进行选择)。那么我该如何实现呢

php - SQL : How to Count occurrences in TableA, 与表连接,然后按出现次数排序?

我想要的:对于连接到Group_ID=1的每个用户,我想计算该用户参加的事件数量,并使用该信息按参加次数最多的用户DESC(结束)进行排序。将用户连接到组的表:user_r_group:IDUser_IDGroup_ID111231321412显示用户参加了哪些事件的表格:activities_attended:IDActivity_IDUser_ID111我正在寻找的结果:User_IDAttendings133221有没有办法写一个mysql_query来实现这个?确实有这种感觉。还是我需要用查询组合来解决PHP中的循环问题?我已经查看了jointables的方法,我稍微熟悉ORD