1

わかりました。クエリで何が起こっているのか困惑していますが、私がやろうとしていることは次のとおりです。

現在、以下のクエリを実行すると、列 product_id = 2 のbid_id は 30 であることがわかりますが、30 ではなく、120 である必要があります (bid_price の値は 29.99 で正しいですが)。

SELECT lowbid.bid_id, lowbid.bid_price
FROM (SELECT bid_id, min(bid_price) AS bid_price, product_id FROM tbl_products_bid WHERE is_active = 1 AND is_deleted = 0 GROUP BY product_id) AS lowbid;

このクエリが私にランダムなbid_idを与えているため、SQLの第一人者が1.私が完全に太っている場合、または2.別の方法がある場合、またはなぜ私ができるのかについての洞察を提供できるかどうか疑問に思っていた理由がわかりませんそのbid_priceとは関係のないランダムなbid_idを取得しています。

私が何を意味するかを説明できる SQLFiddle を作成しましたが、助けていただければ幸いです。

http://sqlfiddle.com/#!2/de77b/14

また、このクエリが別のクエリの一部であることをお知らせするために、問題を引き起こしていると思われる要素 (上記) を取り出しました。より大きなクエリの一部を以下に示します。

SELECT lowestbid.bid_id, lowestbid.product_id, lowestbid.bid_price as seller_bid_price, seller_description, pb.is_countdown, pb.startdate, pb.enddate
FROM
  tbl_products_bid pb
  inner JOIN (
    SELECT bid_id, product_id, min(bid_price) as bid_price, seller_id, description as seller_description, is_countdown, startdate, enddate from tbl_products_bid where is_active = 1 group by product_id
  ) AS lowestbid ON pb.bid_id = lowestbid.bid_id
order by lowestbid.bid_price asc
4

1 に答える 1

2
SELECT  a.*
FROM    tbl_products_bid a
        INNER JOIN
        (
            SELECT  product_id, MIN(bid_price) min_price
            FROM    tbl_products_bid
            GROUP   BY product_id
        ) b ON  a.product_id = b.product_id AND
                a.bid_price = b.min_price
于 2013-05-14T08:23:49.900 に答える