sql >> データベース >  >> RDS >> Mysql

価格比較のためのMysqlクエリ

    すべてで販売されているかどうかに関係なく、すべての製品を一覧表示する「マスター」製品テーブルを用意することをお勧めします。 サイト、または1つだけ。次に、そこから各Webサイトの価格表に参加します。製品名を照合してみてください。最も単純な形式では、クエリは次のようになります。

    select
      p.*,
      t1.price as site1_price,
      t2.price as site2_price,
      t3.price as site3_price
    from product p
    left join website1 t1 on t1.name = p.name
    left join website2 t2 on t2.name = p.name
    left join website2 t3 on t3.name = p.name;
    

    ブランドとモデルで参加する必要がある場合があります。つまり、 on t1.brand=p.brandおよびt1.model=p.model 、または名前が一意でない場合は他の基準。

    製品を販売していない場合、サイトの価格は無効になります。

    製品にすばやくデータを入力するには、次のコマンドを実行します:

    insert into product (name, brand, model, ...)
    select name, brand, model, ... from website1
    union 
    select name, brand, model, ... from website2
    union 
    select name, brand, model, ... from website3;
    

    参考までに、<​​code> UNIONの使用 ( UNION ALLではなく )ユニオンの出力が一意の行のみを生成するようにします




    1. ストレージエンジンからの自動インクリメント値の読み取りに失敗しました、エラー番号:1467

    2. mysqlフィールドの値が重複している場合、新しい値で新しい行を挿入します

    3. より多くのトランザクションログファットをトリミングする

    4. Ubuntu16.04でのPostgreSQLデータベースの作成と削除