English 中文(简体)
如何从册和册子中挑选第一行
原标题:How to select first # rows from album and album details
  • 时间:2010-12-13 18:04:59
  •  标签:
  • php
  • mysql

目前,我正在为一米网站(Im)开发一个光灯片,我的想法是,对所有光布进行概述,显示最近增加的5幅照片。 照片目录使用2个MySQL表格,其中1个载有《汇辑》详细内容(例如:册子、书目),1个载有照片(将照片储存在数据库中,作为博览)以及相应的《汇辑》。

然而,我看不出一个问题,使我能够勾画出所有《汇辑》的细节和与《汇辑》对应的5个最新图片的粗略数字。 我希望你能够帮助我走出僵局。

表格如下:

Table: photoalbums

id | album_name | album_created
-------------------------------------
1  | testalbum  | 2010-11-07 19:33:20
2  | some more  | 2010-11-15 18:48:29

表:图片

id | file   | thumbnail | name  | album_id
------------------------------------------
1  | binary | binary    | test1 | 1
2  | binary | binary    | test2 | 1
3  | binary | binary    | test3 | 2
4  | binary | binary    | test4 | 2
5  | binary | binary    | test5 | 1

我认为,我像我一样需要一个子座,或每卷一个单独的问话。 我会避免使用多个问题。

谁能帮助我找到这样做的正确途径? 提前感谢。

问题回答

您不妨考虑建立一个单独的、非正常的历史表格,同时插入任何新的照片,包括红册,插入照片的日期,以及你希望在本历史表中显示结果的任何栏目。 然后,根据photo_production_date<>/strong>从本桌边挑选。 (我不考虑创建名称日期会帮助您与会)。

这还有助于将你根据照片制作日期提出的任何询问与对照片和照片制作日期没有任何关系的照片和图片进行的其他插入/更新/阅读操作分开。 页: 1

这确实使你承担额外储存的费用,并插入业务,但速度更快。 你还必须谨慎地维持历史表。 照片和图片表格的删除/更新/索引也需要更新历史表格。

提 出

SELECT * FROM pictures LEFT JOIN photoalbums ON (photoalbums.id=pictures.id) ORDER BY album_created DESC
 LIMIT 5

如果只为某个特定类别提供信息,如果在<条码>中添加一个日期修改栏。 您可以这样做:

SELECT a.*, p.*
FROM photoalbums AS a
LEFT JOIN pictures AS p ON a.id = p.album_id
WHERE a.id = 1  -- (insert number here)
ORDER BY p.modified_date
LIMIT 5

关于所有书目最近5次图像修改的清单,有办法提出质询,以收回这些信息。 让我知道,我也想像你那样问。

这一询问将使你了解所有《汇辑》的细节,以及所有由“电离层”在“ma子”的田中进行的图像。 我只能说得最快。 最近的是,因为你没有一个日期——照片一栏。

SELECT a.*, GROUP_CONCAT(p.id ORDER BY p.id DESC) as picID FROM photoalbums AS a INNER JOIN pictures AS p ON p.album_id=a.id GROUP BY p.album_id

正如我说过的那样,这将带来所有情况,从而减少身份证。 它应当是一个简单的问题,它应当放在 com子上,并在头5个身份证上打碎。

我必须感谢你开展这一微薄的项目,但不幸的是,在你想要它的时候,我不得不走下去。

单凭单,就这样做,你需要以某种方式与上级领域联系,因为询问正在进行。 为此,你需要使用一个变量。 在此,我使用了变数x在盘问时保持现值。 由于每一记录都是选定的,委员会如果目前处理属于现任父母的记录,则决定该记录。 如果这样做,就只能增加总开支的0.5。 (我最初尝试过1,但似乎增加了两倍)。

这是最后的问题。 让我知道这是否有助于:

SELECT album_id, id, @x := if(@album_id = album_id, @x + 0.5, 1) cnt, @album_id := album_id FROM pictures GROUP BY album_id, id, cnt HAVING cnt <= 5;





相关问题
SQL SubQuery getting particular column

I noticed that there were some threads with similar questions, and I did look through them but did not really get a convincing answer. Here s my question: The subquery below returns a Table with 3 ...

please can anyone check this while loop and if condition

<?php $con=mysql_connect("localhost","mts","mts"); if(!con) { die( unable to connect . mysql_error()); } mysql_select_db("mts",$con); /* date_default_timezone_set ("Asia/Calcutta"); $date = ...

php return a specific row from query

Is it possible in php to return a specific row of data from a mysql query? None of the fetch statements that I ve found return a 2 dimensional array to access specific rows. I want to be able to ...

Character Encodings in PHP and MySQL

Our website was developed with a meta tag set to... <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> This works fine for M-dashes and special quotes, etc. However, I ...

Pagination Strategies for Complex (slow) Datasets

What are some of the strategies being used for pagination of data sets that involve complex queries? count(*) takes ~1.5 sec so we don t want to hit the DB for every page view. Currently there are ~...

Averaging a total in mySQL

My table looks like person_id | car_id | miles ------------------------------ 1 | 1 | 100 1 | 2 | 200 2 | 3 | 1000 2 | 4 | 500 I need to ...