jjzjj

subQuery

全部标签

mySQL 从列表中选择另一个选择

A有一张table:id|name|idparent|info1|AA||x2|BB||3|CC||x4|DD|1|5|EE|1|6|FF|2|7|GG|2|8|HH|3|8|HH|4我想做的就是用mySQL/PHP这样做:SELECTidFROMtableWHEREinfoLIKE'x'在PHP中foriineachidresultofthefirstrequest:SELECTid,nameFROMtablewhereidparent=iORDERBYRAND()LIMIT1;endFor例如,结果可能是:4|DD8|HH并且由于RAND(),结果也可能是:5|EE8|HH但它不是

MySQL 子查询真的很慢......解决方法?

我在MySQL5.0、5.1、5.5上测试了以下看似简单的查询,发现它非常慢。select*fromentrywheresession_idin(selectsession_idfromentrywherecreated_at>[sometimestamp])多个条目可以有相同的sessionID,但有不同的created_at时间戳。该查询旨在从同一session_id中获取至少一个条目的所有条目,其created_at大于指定的时间戳。我看到其他人谈到类似查询的MySQL子查询性能问题,并且MySQL认为子查询是一个依赖查询,它正在对外部查询进行全表扫描。建议的解决方法如下:sel

mysql - 带有子查询的 SELECT 查询中的 IF 和 CASE 语句

如果menu_items.parent不是0,则下面的查询返回NULL,这是错误的。我在这里要做的是,如果menu_items.parent行的值为0则将其作为原始值返回,但如果该值不是0然后返回值对应行的名称(varchar)。知道为什么我总是得到NULL吗?注意:所有其他选定的列都是正常的,因此查询本身没问题。谢谢示例1:SELECT......(CASEWHENmenu_items.parent='0'THENmenu_items.parentELSE(SELECTnameFROMmenu_itemsWHEREid=menu_items.parent)END)ASParentID

MySQL 错误 1241 (21000) : Operand should contain 1 column(s)

我有具有编号范围(从Customernumber到Customernumber)的客户组。selectg.id,(selectcount(*),sum(sales)FROMtransactionst1wheret1.customernumberbetweeng.from_customernumberandg.to_customernumber)fromcustomer_groupsg选择这个时出现这个错误ERROR1241(21000):Operandshouldcontain1column(s)我该怎么做才能解决这个问题?我已经阅读了一些关于此的主题,但我没有找到解决方案。最好的问候

使用 SUM、WHERE、GROUP_BY 的 MySQL 子查询

我是初学者(不是DBA)。我的数据的简单版本==>我希望的结果:|ball|color|count||ball|TotalBlue|TotalRed|-----------------------------------------------|b1|red|2|====>|b1|5|2||b1|blue|3||b2|3|1||b1|blue|2||b2|red|1||b2|blue|3|Iwanttotabulateeachball(b1,b2,etc).Thenthetotalinstanceofeachcolorforeachball.Therearemultipleentrie

mysql - 更好的子查询方式

我有一个数据库,其中article表与其自身具有多对多关系(通过article_rel)并且articles具有类型。parent的类型为1234,而child可以是几种类型之一。我正在努力寻找以下两种情况之一的parent:没有child;或者,如果他们有child,则最近的子文章不是特定类型的集合。以下内容对于第二部分来说工作得相当好,但没有解决第一部分。我为提取子查询以便引用它返回的值(添加“orisnull”)所做的每一次尝试都失败了。我也想知道是否有更好的方法来写这样的东西。SELECTCONCAT('http://www.sitename.com/',n.id,'.html

mysql - 如何使用 MySQL 列别名进行计算?

如何使用两个子查询中的列别名(lat和lng)在下面进行距离计算?我基本上想做的是使用经度和纬度值计算两个位置之间的距离。但不知何故,我的别名在查询中不可用,为什么?SELECTwp_posts.*,(SELECTwp_postmeta.meta_valueFROMwp_postmetaWHEREwp_postmeta.post_id=wp_posts.IDANDwp_postmeta.meta_valueLIKE'41.%')ASlat,(SELECTwp_postmeta.meta_valueFROMwp_postmetaWHEREwp_postmeta.post_id=wp_po

mysql - 如何比较同一张表中的记录列?

这是我的测试表数据:测试IDNamePayment_DateFeeAmt1BankA2016-04-01100200002BankB2016-04-02200100003BankA2016-04-03100200004BankB2016-04-0430020000我正在尝试比较每个数据记录的名称、费用和金额字段,看是否有相同的值。如果他们获得相同的值(value),我想在这些记录上标记“Y”之类的东西。这是预期的结果IDNamePayment_DateFeeAmtSameDataExistYN1BankA2016-04-0110020000Y2BankB2016-04-02200100

MySQL根据记录是否存在于另一个表中选择 bool 值

您好,我有一个用户可以选择的实体表,我还有另一个表,其中包含有关用户最喜欢的实体的信息。见:表实体:id|...表SavedEntity:id|entity_id|user_id我希望结果是这样的:entity_id|...|favourite我的问题是如何更改获取所有实体的查询并添加一个附加字段是一个boolean值,表示该实体是否是用户最喜欢的?我研究过使用(或模拟!)FULLJOIN但这似乎不必要地复杂而且我不能完全让它工作,我研究了CASE关键字,但我再次没有运气。我相信这种多对多表结构是相当标准的,所以我确信有一种获取所需信息的标准方法,谁能帮我弄清楚我遗漏了什么?注意我正在

mysql - "IN"子句中的子查询

SELECT*FROM`image_appreciations`WHERE`image_id`IN(SELECT`id`FROM`images`WHERE`user_id`='1')是我当前的查询,它返回零结果SELECT`id`FROM`images`WHERE`user_id`='1'作为子查询返回大约8个id,其中两个在SELECT*FROM`image_appreciations`WHERE`image_id`IN(77,89)而且效果很好。但总的来说它失败了。我做错了什么? 最佳答案 这可以使用JOIN来完成。下面是一个使