1

私はSQLを長い間使用していません。基本的なクエリについては、助けが必要です。次の3つのテーブルがあります。

  • users (id, name)
  • products (id, name)
  • owners (userid, productid, date)

1つの製品をユーザーAからユーザーBに販売してから、Aに戻すことができます。

ここで、トランザクションの日付とともに、すべてのユーザーが現在所有しているすべての製品のリストが必要です。

現在、私のクエリはこれですが、古いデータ(最新のものではなく、1つの製品を1人のユーザーに最初に関連付ける)で立ち往生しています。

SELECT users.name, products.name, date
FROM products
     JOIN owners ON products.id = owners.id
     JOIN users ON owners.id = user.id
GROUP BY product.id

ヒントはありますか?

ありがとう

4

2 に答える 2

1

dateそれぞれの最新のものを取得するサブクエリを追加する必要がありますproductid

SELECT  users.name, 
        products.name, 
        date
FROM    products
        JOIN owners 
            ON products.id = owners.id
        JOIN users 
            ON owners.id = user.id
        JOIN
        (
            SELECT productID, MAX(Date) maxDATE
            FROM owners
            GROUP BY productID
        ) nw ON owners.productID = nw.productID AND
                owners.date = nw.maxDAte
GROUP BY product.id
于 2012-10-18T17:00:56.340 に答える
0

クエリを降順で取得した場合、最後に追加されたデータが最初に表示されます

ORDER BY date DESC

于 2012-10-18T17:09:13.717 に答える