私は2つのテーブルを持っています。これは、日付に基づいて最後の10個のアクティブなプロジェクトIDを取得する必要があります。クエリは次のとおりです。MySQLグループby組合#1064エラー
(
SELECT project_posts.projectid as projectId, `project_posts`.`date` as rowDate
FROM `project_posts` ORDER BY `project_posts`.id DESC
)
UNION ALL
(SELECT `project_comments`.projectid as projectId, project_comments.`date` as rowDate FROM `project_comments` ORDER BY `project_comments`.id DESC) GROUP BY projectId ORDER BY rowDate DESC LIMIT 10
そして、私はrowDate DESC(最後のプロジェクトを最初に)でソートします。問題は、私は、MySQLでグループを追加するときにということであると言う:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP BY projectId ORDER BY rowDate DESC LIMIT 6' at line 9
私は労働組合、労働組合のすべてのグループによると問題のためにインターネット上に見えたが、私は、任意の解決策を見つけることができませんでした。 ありがとうございます。
ご返信ありがとうございます。クエリは実行されますが、並べ替えが正しいとは限りません。最後のプロジェクトIDを取ることはありません(日付DESCで並べられた両方のタルブに対して別々の選択を実行すると異なります)。私は、ORDER BYの 'project_comments''''date'' DESCと' project_posts'''date' DESCを使って、(UNION内の)すべてのselectでORDER BY句を変更しようとしましたが、まだここにあります。なにか提案を?前もって感謝します。 – some12die4
元の投稿をもう一度読みました。最終目標は何で、テーブル構造は何ですか?私はUNIONを使ってこのクエリを実行するのが最良の方法だとは思わない。 – nnichols
誤解をおかけして申し訳ありません。私は彼らの活動(投稿とコメント)に基づいて、最後の10のアクティブなプロジェクトを手に入れたいと思います。私は組合とは違う方法を見つけられませんでした。 – some12die4