我有3个表。寻找一种使用三个不同表格找到字段PRICE
的差异的好方法,然后显示前三个最大的负面差异。我想先找到最好的MySQL查询使用,并找到最好的方式来显示它在PHP中。联盟选择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产品B -6从主要产品B公司
IDEA区别:我不是那么亲切,但我可以在三张桌子WHERE MODEL=XXX
上使用.. UNION SELECT
。我可能会循环每一个收集数据,做数学和吐出信息。唯一的问题是,我不知道如何将每个变量存储为每个表的自己的价格。另外,我认为它会显示所有的差异,除非在数学计算之后存储每个变量,然后显示前三个差异。
任何想法或建议,以最好地解决这个问题将不胜感激。 (注意:不,我不能把它们全部放在一张表中= p)
美丽。到目前为止,它在我执行的所有测试中都能正常工作,谢谢。 – ToddN 2012-04-25 17:14:03
ahem - 我的解决方案下面更灵活,更高效... – mson 2012-04-25 17:27:31
@ToddN,虽然这适用于所有产品,如果你想要一个特定的单一模型的竞争对手名单,我只是将其添加为WHERE子句每个联盟......或者,如果你想要每个型号的前3名,那也是一个不同的查询。 – DRapp 2012-04-25 17:41:20