0

これを尋ねる方法がわかりませんが、どちらが良いですか... GROUP BYまたは複数のテーブルを使用しています。

現在、リストを生成するテーブルが 1 つあります。いくつかの列があり、1 つはリスト 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'"

私は興味があります、これを行うより良い方法はありますか? もう 1 つの考えは、2 つのテーブルを作成することでした。1 つは一般情報と一意の ID (listID) を保持し、2 番目のテーブルはリスト内の各項目を保持します。次に、それらをそれぞれクエリします。何が一番効率がいいのか知りたいです。ご意見ありがとうございます。

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 に答える