私は3つのテーブルを持っています。フィールドPRICE
の違いを3つの異なるテーブルを使用して確認し、上位3つの最も大きなマイナスの差異を表示するよい方法を探してください。私はまず、使用する最良のMySQLクエリを見つけて、それをPHPですべて表示する最良の方法を見つけたいと思います。UNION SELECT MySQLのクエリは、PHPで数学と表示を行う
MAINTABLE:
COMPANY | MODEL | PRICE
Main Company | ProductA | 100.00
Main Company | ProductB | 50.00
Main Company | ProductC | 25.00
Main Company | ProductD | 300.00
COMPTABLE1:
COMPANY | MODEL | PRICE
Competitor1 | ProductA | 100.00 //0
Competitor1 | ProductB | 55.00 //5
Competitor1 | ProductC | 50.00 //25
Competitor1 | ProductD | 200.00 //-100
COMPTABLE2:
COMPANY | MODEL | PRICE
Competitor2 | ProductA | 99.00 //-1
Competitor2 | ProductB | 44.00 //-6
Competitor2 | ProductC | 20.00 //-5
Competitor2 | ProductD | 100.00 //-200
だから私のページに表示された私が欲しい価格で最大の負の違いは次のとおりです。
- Competitor2 ProductDメイン・カンパニーProductDから-200違い
- Competitor1 ProductD -100違いメインから会社ProductD
- Competitor2 ProductB -6主な会社ProductB
IDEAとの違い:私はそれほど親密ではありませんが、私はUNION SELECT
を3つのテーブルに使用することができますWHERE MODEL=XXX
。データを収集し、数学を行い、情報を吐き出して、それぞれをループする可能性があります。問題は、各変数を各テーブルの独自の価格として保存する方法がわからないことです。また、数学の後に各変数を保存し、次に上位3つの違いを表示する方法がない限り、すべての違いを表示すると思います。
このクエリに最適なアイデアや提案があれば幸いです。 (注:1つのテーブルにすべてを入れることはできません)
美しい。これまでのところ、私が行ったすべてのテストで動作します。ありがとうございました。 – ToddN
ahem - 下の私のソリューションは、より柔軟で効率的です。 – mson
@ToddN、これはすべての製品に共通ですが、特定の単一モデルの競合他社のリストが必要な場合は、WHERE句として追加します各ユニオン...または、あなたがモデルごとにトップ3を望むなら、それも異なったクエリでしょう。 – DRapp