は、私は、次のデータベース構造を持っていますテーブルは経由で接続されています複雑MySQLのデータベースクエリ
この事は、私は上記のクエリで、ある私は、次のフォーマットで出力データを
name | Latest initiated_on | status of the latest initiated_on row
したいと私は次のSQLクエリ
SELECT *, `sites`.`id` as sid, SUM(`backups`.`size`) AS size
FROM (`sites`)
LEFT JOIN `backups` ON `sites`.`id` = `backups`.`site_id`
WHERE `sites`.`id` = '1'
GROUP BY `sites`.`id`
ORDER BY `backups`.`initiated_on` desc
を持っています私が探しているものを達成することができますが、唯一の問題は最新のinitiated_on
値を取得しないことです。
私は= 1
site_id
とbackups
に3行を持っていたのであれば、クエリはinitiated_on
で最も高い値を持つ行を選び出すことはありません。それはちょうど行を選びます。事前に
助けてください、と
感謝。
GROUP BYを使用しているときにSELECT *を記述しないでください。返される値は任意です。ほとんどのDBでは、これは有効なSQL文ではありません。 (GRUOP BYを使用していなくても、SELECT *はやはり悪い習慣とみなされます)。 –
「SELECT sites。*」に変更することはできますか? – ekhaled
あなたはそれが返されていないと思われる、あなたのSELECTにiniti_onを追加していません。 – CBusBus