我一直在处理一个运行以下查询的应用程序:
SELECT m.*, GROUP_CONCAT(g.title) as genres
FROM movie m
INNER JOIN genre_movie gm ON gm.movie_id = m.id
INNER JOIN genre g ON gm.genre_id = g.id
WHERE m.imdb_id = '454876'
当我在查询浏览器中或直接通过SSH运行查询时,它返回以下结果(示例:)
在我的PHP代码中,我执行以下操作来循环这些类型:
<?php $get = mysql_query($q
我写了这个查询后,优化了一个php脚本,做同样的事情,但使用3个不同的查询和2个循环while...and这个php脚本花了超过6个小时来运行…所以我已经在一个简单的查询中压缩了所有内容,没有任何循环地将所有内容压缩到相同的作业中。
DELETE table FROM table WHERE id IN (
SELECT id from(
SELECT MAX(data_elab) as data_elab_new, count(*) as volte,t1.* FROM (
SELECT * from table ORDER BY data
我正在编写一个复杂的MySQL查询。我的实际查询比我下面提到的复杂得多。
我有一个名为example的表,列是id、name、option_1、option_2。当然,id列是主键。我想像这样检索:
SELECT `id`,`name`,count(`option_1`),count(`option_2`)
我的问题是,我想分别对count(`option_1`)使用"GROUP BY `id`",对count(`option_2`)使用"GROUP BY `name`"。现在我必须在我的php代码中把它分解成多个代码。
如何在一个查询中实现我想要的结果?
我有一些将在MySQL表上运行用户生成的SQL的PHP代码。查询的可能性是有限的,但可能是,例如
SELECT City, Country, count(*) FROM Table ... GROUP BY City, Country
或
SELECT count(*) AS Count, Role, Country FROM Table ... GROUP BY Role, Country
或
SELECT count(*), TicketType, City, SUM(Quantity) AS 'Total Quantity' FROM Table ... GROUP BY
假设我有一张列列的电影租房者表:
UserID
MovieID
Rent_Start_date
Rent_Due_Date
我正在尝试实现一个输出表,如下所示:
[UserID, Count of Movies Due in 1 Day, Count of Movies Due in 1 Week]
这可以在一个查询中完成吗?我现在有一个php脚本,它运行1天内到期的电影查询,还有一个在1周内运行电影的查询。然后,对每个用户ID循环这两个查询,基本上是按时隙填充表。这有点慢。
通过尝试只使用一个查询创建此输出,我尝试了如下所示:
SELECT UserID, cou
我在使用mySQL和我的PHP管理员时遇到了问题,查询我的数据库时也遇到了问题,这是查询语句:
SELECT Record_ID, Datalog_ID, TIME, AVG( Value )
FROM `Datalog_Values`
WHERE Datalog_ID = '241'
AND TIME
BETWEEN '2012-06-01'
AND '2012-06-30'
GROUP BY HOUR( TIME )
我得到的结果只是第一天的结果,而不是周期。这个月。
我的声明有什么问题?
亲爱的们:
我需要你的帮助来优化下面的查询。我有两个表,一个用于存储图书数据,另一个用于将图书映射到与之相关的标签。我想统计一下某个出版商在每个类别中有多少本书。这个查询完成了这项工作,但我需要对其进行优化:
select count(book.id),publisher from book,tag where book.id=tag.book_id AND publisher ='Addison-Wesley Professional' AND tag.name='PHP' group by category
explain的结果是
id sele
我有一个查询,它从数据库返回帖子,查询按类别分组文章,标题是指向原始帖子的链接。返回的帖子显示在类别页面上。
问题是,当显示文章标题并按类别分组时,我发现每个类别的帖子只有第一个post_id,而我的链接只返回每个类别中ID最低的第一个帖子或帖子。该链接将您带到原来的帖子。原始文章显示在一个名为“entries.php”的页面上。
示例:
Post1 id =1
Post2 id =2
Post3 id =3
上面的所有帖子都是按类别分组的,但如果我悬停在它们上面,它们都会因为某种原因而拾取Post1 id=1。我能做些什么来确保当我悬停在它们上面时每个id都被找到了吗?耽误您时间,实在对不起
我正在处理一个自定义查询,如下所示:
<?php
$querystr = "SELECT *, SUM(`total_votes`) AS tv
FROM `toptr_bpvm_summary`,`toptr_posts`
WHERE 1
AND toptr_bpvm_summary.postid = toptr_posts.ID
AND toptr_posts.post_status = 'publish'
AND toptr_bpvm_summary.post_type = 'cars'
AND toptr_bpvm_summary.vote
$q2 = "SELECT startdate,
GROUP_CONCAT(summary separator '<br />') as summary,
GROUP_CONCAT(TIME(startdate)) AS starttime,
GROUP_CONCAT(TIME(enddate)) AS endtime
FROM oc_clndr_objects
WHERE calendarid = $calID
我有一个查询,在那里,我需要让所有客户在给定的一个月中花费少于一定金额的地方,并且只返回那些没有达到配额的客户。
现在的查询如下所示。
SELECT cus.id, cus.email_address, COALESCE(SUM(credit_total),0) AS totalSpend
FROM customers AS cus
LEFT JOIN tasks_custs AS tsk ON tsk.user_id = cus.id
WHERE (
YEAR(date_ordered) = '2013'
AND MONTH(date_ordered) = '09
我有一个包含访问日志的表。我想知道在一天的24小时内,每小时有多少次访问resource_id '123‘。
我检索这些信息的第一个想法就是循环遍历每个小时,并在每个循环中查询表,如下所示...如果time字段保存格式为15:47:55的数据,则返回and time like '$hour:%'。
有没有一种方法可以在单个查询中group by小时,并检索每个小时和每个小时内的行数?
数据库采用MySQL,语言采用PHP语言。
尝试使用推理子查询优化此查询
SELECT g.*, g.instaLikes + ( SELECT COUNT( * ) FROM gallery_likes AS l WHERE l.gallery_id = g.id ) AS likes
FROM gallery AS g
WHERE ( STATUS = 'approved' )
ORDER BY g.moderated_at DESC , g.id ASC
没有子查询的SELECT速度非常快,而当我尝试左连接时,它的速度会更慢。
SELECT g.*, (g.instaLikes + COUNT( l.
我有一个PHP文章网站,允许登录Facebook,我需要显示一个“文章分享你的朋友”的列表。每一篇文章都以链接的形式分享,比如mysite.com/articles/1。
我已经看到了问题,但是由于链接表中的url字段没有索引,我不能使用"WHERE url LIKE '%mysite.com%'“,因此检索到的链接列表将太大,无法通过PHP循环进行过滤(100个用户共享100个,每个用户将显示10000个url,以便在每次页面加载时过滤)。
我目前正在使用这个FQL查询:"SELECT url FROM link WHERE owner IN (SELECT
如何在不使用UNION或子查询的情况下将该查询更改为一个查询?加入是允许的。
问题是某些产品是用列group_code中的值分组的。这意味着在查询结果中只应该返回一个。我使用的是,无法使用联合查询或子查询。
我尝试通过执行两个查询并将结果与PHP组合来修复这个问题。但是,当我尝试分页结果时,我会说限制2,这将返回4个结果,因为这两个查询都会得到2个结果。
查询
(SELECT *
FROM product
WHERE group_code != ''
GROUP BY group_code)
UNION ALL
(SELECT *
FROM product
WHERE g
我的表结构是
id order_id location time date
1 951 x 2/03/2013
2 951 x 13:00 2/03/2013
3 951 y 3/03/2013
我想在php中使用group by date来显示这些内容,比如
Date 2/03/2013
Orderid 951 location x
Orderid 951 location x
Date 3/03/2013
Orderid 951 location y
m
如果可能的话,我尝试在一个查询中获取每个子表中数量的计数或总和。我可以只在php中循环,但我正在尝试在mysql中找到一种方法。
这是一个样例
SELECT SUM(purchase_quantity),SUM(sales_quantity)
FROM products p
INNER JOIN purchase_order_lines sl ON pl.product_id = p.id
INNER JOIN purchase_orders po ON pl.purchase_order_id = po.id
INNER JOIN sales_order_lines sl ON sl.pro
我正在使用MySQL,并且我有一个在列中包含日期的表(我正在为一个类制作一个包含到期日期的表)。在此之前,我的查询如下:
SELECT * FROM duedates_f2011 ORDER BY anothercolumn
为了防止重复出现(基于duedate列),我必须将其更改为:
SELECT * FROM duedates_f2011 GROUP BY duedate
目前,它保留了相同的顺序,但是我如何保证它仍然会这样做呢?在我读过的GROUP BY教程中,没有任何东西表明它仍然会对其进行排序,而且在之后添加ORDER BY语句也是不正确的。我是否遗漏了什么,或者我应该添加其他什么以
由于某些原因,这个查询不能工作。
<p align="center">
<?php
$result1 = mysql_query("SELECT name FROM comics GROUP BY name ORDER BY name ASC");
while ($row = mysql_fetch_array($result1))
{
?>
<a href="?sort=<?php echo substr($row['name'], 0, 1); ?>"><?php echo
我有一个数据库,其中包含具有id和美国州的以下表"responses“:
*id *state
1 CA
2 NY
3 NY
4 CO
5 DE
我使用PHP输出美国50个州的总行数。
因此,我的输出将如下所示:
CA: 1
纽约:2
CO: 1
DE: 1
等等。
我知道我可以像这样运行50个查询:
SELECT *
FROM `responses`
WHERE state='CA'
我的问题是:有没有更有效的方法来处理这个问题,或者我需要运行50个查询?
我肯定这比我现在所做的更容易,但我正努力把这件事做好。我需要在表A中获得ID所需的费用,但如果表B上存在ID,则总费用是该表中ID的所有行的总和。
这是我使用的查询:
SELECT gastos.id,
gastos.importe,
SUM(asignacion_gastos.importe) AS "totalAsignado",
CASE
WHEN "totalAsignado" IS NULL THEN
"totalImporte" = gastos.impo
我正在为我的团队创建一个锻炼日志。我目前拥有的是一个MySQL查询(用PHP编写),该查询检索与当前周发布的帖子相关联的用户is数组。守则如下:
mysql_query("SELECT u_id FROM posts WHERE id IN (SELECT p_id FROM post_groups WHERE g_id='" . $group['id']. "') AND date >= '" . $d_start . "' AND date <= '" . $d_end .