草庐IT

self-joins

全部标签

Mysql join and sum 是加倍的结果

我有一张收入表title_idrevenuecost11052105310541051206220632064206当我执行这个查询时SELECTSUM(revenue),SUM(cost)FROMrevenueGROUPBYrevenue.title_id产生结果title_idrevenuecost13011230113301143011没关系,现在我想将总和结果与另一个具有这样结构的表合并title_idinterest110210310410120220320420当我像这样使用聚合函数执行连接时SELECTSUM(revenue),SUM(cost),SUM(interest

mysql - LEFT OUTER JOIN 查询未返回预期的行

我的目标是使用第4个维恩图来准确执行LEFTOUTERJOIN打算执行的操作:SQLDiagrams:我的查询根本没有返回任何值,实际上,它应该返回Consultant_Memberships中的所有值减去Consultant_Memberships_Lists中存储的值。请参阅SQLFiddle为了更容易理解:SELECT*FROMconsultant_membershipsLEFTOUTERJOINconsultant_memberships_listONconsultant_memberships.`id`=consultant_memberships_list.membersh

mysql - 在 SQL 中,JOIN 和 CROSS JOIN 有什么区别?

有什么区别:selectt1.a1,t1.a2,t1.a3fromt1crossjoint2wheret1.a3=t2.a1和:selectt1.a1,t1.a2,t1.a3fromt1,t2wheret1.a3=t2.a1;我可以互换使用它们吗? 最佳答案 SQL具有以下类型的联接,所有这些都直接来自集合论:内部联接。FromAinnerjoinB等价于A∩B,提供两个集合共有的元素集合。左外连接。FromAleftouterjoinB等价于(A−B)∪(A∩B)。每个A至少出现一次;如果有多个匹配的B,A将在每个匹配的B中重复一

mysql - JOIN 子句中的 MySQL 逻辑评估是否惰性/短路?

采用以下表达式:FALSEAND(expression)MySQL会评估表达式还是在看到FALSE时立即继续?一些背景上下文——我想通过以下方式加快查询速度:JOIN...ON(indexed_column1=indexed_column2ANDnon_indexed_column_a=non_indexed_column_b)关于我为什么做这个查询的背景seethisanswer如果它要始终评估non_indexed_column_a=non_indexed_column_b那么不会节省时间。 最佳答案 MySQL查询优化器尽可能

MySQL - LEFT JOIN 和 COUNT()

我有3个表:论坛id,name,description线程thread_id,forum_id,user_id,title,content,views帖子post_id,thread_id,author_id,content,date我想做的是获取一个论坛中的所有主题,并获取每个主题的发帖数。所以我得到了每个线程(WHEREforum_id=whatever),然后我LEFTJOIN与表帖子一起计算结果。但是有些东西不起作用。这是我的查询:SELECTt.*,u.nick,COUNT(p.post_id)ASpostcountFROMthreadstLEFTJOINusersuONu.

php - Doctrine2 多对一关联不会使用 JOIN 查询

我有一个Car实体,它与实体Owner存在多对一关系。如果我选择所有汽车,Doctrine在Car表上执行一次查询,然后在Owner表上为每辆汽车执行一次查询。因此,获取N辆汽车变成了N+1查询,而不是Car和Owner表之间的单个JOIN查询。我的实体如下:/**@Entity*/classCar{/**@Id@Column(type="smallint")*/private$id;/**@ManyToOne(targetEntity="Owner",fetch="EAGER")@JoinColumn(name="owner",referencedColumnName="id")*/

mysql - 在mysql查询中结合Left和Right Join

我正在加入2个表-tbl1和tbl2。左连接给出来自tbl1的所有数据,这些数据在tbl2中或仅在tbl1中。右连接给出了tbl2中不存在于tbl1中的数据。我想合并这两个结果。执行此操作以便从tbl1和tbl2获取所有数据的最佳方法是什么? 最佳答案 唯一可以做到的是使用UNION。MySQL不支持FULLJOIN,就像在MSSQL中一样。SELECT*FROMtbl1t1LEFTJOINtbl2t2ONt1.col=t2.colUNIONSELECT*FROMtbl1t1RIGHTJOINtbl2t2ONt1.col>=t2.S

MYSQL Left Join 最后一行结果

我需要一些MYSQL帮助。我有一个名为Tickets的表和一个名为statusLogs的表,我该如何:selectt.*,sl.statusIdfromticketLEFTJOIN(select*fromstatusLogwhereticket_ticketId=t.ticketIdorderbystatusLogIdDESCLIMIT1)sl基本上,我想在一个语句中为给定的票号选择最后一个状态日志。 最佳答案 这是未经测试的,但这是我的一种方法:SELECTt.*,sl1.statusIdFROMticketAStLEFTJOIN

mysql - 为什么 MySQL LEFT JOIN 不返回所有行,除非有 WHERE 子句 - phpMyAdmin 问题

考虑以下几点:eventTypes表有163行。事件有43,000行。SELECTevents.eventTypeID,eventTypes.eventTypeNameFROMeventsLEFTJOINeventTypesONevents.eventTypeID=eventTypes.eventTypeID这将返回163行。但是,如果我添加“WHEREevents.eventID>=0”SELECTevents.eventTypeID,eventTypes.eventTypeNameFROMeventsLEFTJOINeventTypesONevents.eventTypeID=ev

java - JpaSpecificationExecutor JOIN + ORDER BY 规范

我有一个使用JOIN和ORDERBY的查询,我想使用CriteriaApi在我的存储库中使用它。在这里我找到了如何将这样的查询包装到CriteriaQuery(Link)中。CriteriaQuerycq=cb.createQuery(Pet.class);Rootpet=cq.from(Pet.class);Joinowner=cq.join(Pet_.owners);cq.select(pet);cq.orderBy(cb.asc(owner.get(Owner_.lastName),owner.get(Owner_.firstName)));另一方面,我找到了一些将Criteri