0

我不知道如何问这个,但哪个更好......使用 GROUP BY 或多个表。

目前,我有一个生成列表的表。它有几列,一列是列表ID。

现在这是我的查询

SELECT `listID`, `` 
FROM `acmSongLists` 
WHERE `churchID`='".$thisID."' AND `timeSent` >= DATE_SUB( CURDATE( ) ,INTERVAL 0 MONTH ) 
GROUP BY `listID` ASC

当然,重点是获取与同一个 listID 关联的所有项目。然后我将该 ID 传递给另一个查询以显示我的列表标题。又名...

SELECT * FROM `acmSongLists` WHERE `listID`='$listID'"

我很好奇,有没有更好的方法呢?我的另一个想法是创建两个表,一个包含一般信息以及一个唯一 id (listID),然后是另一个包含列表中每个项目的表。然后分别查询。我想我想知道什么是最有效的。谢谢你的想法。

4

1 回答 1

0

你可以试试这个查询:

SELECT asl1.`listID`, asl2.*
FROM `acmSongLists` asl1 INNER JOIN `acmSongLists` asl2 ON asl1.listID = asl2.listID
WHERE `churchID`='".$thisID."' AND `timeSent` >= DATE_SUB( CURDATE( ) ,INTERVAL 0 MONTH ) 
GROUP BY asl1.`listID` ASC
于 2013-03-04T07:52:49.373 回答