问题描述
我正在使用sql中的自定义数据库在wordpress(PHP)上编写自定义查询。
我有两个表:
| table.carMake | | table.carmodels |
|----------------| |---------------------------------|
| id | make | | ID | makeId| modelname| price |
|----|-----------| |----|-------|----------|---------|
| 1 | toyota | | 1 | 1 | A | low |
| 2 | mazda | | 2 | 3 | B | med |
| 3 | tesla | | 3 | 3 | C | high |
| 4 | 2 | D | med |
| 5 | 2 | E | med |
| 6 | 2 | F | low |
$modelprices =
[
make: toyota,low: 1,medium: 0,high: 0,],[
make: mazda,medium: 2,[
make: tesla,low: 0,medium: 1,high: 1,]
我一直在搜寻,但是我的sql知识非常有限。谢谢!
解决方法
希望这会对您有所帮助,我已经使用DB Fiddle准备了SQL查询。在这里,我使用CASE时要加上制造商和价格明智的数量。
SELECT CM.make,SUM(CASE CMS.price WHEN 'LOW' THEN 1 ELSE 0 END) AS LOW,SUM(CASE CMS.price WHEN 'HIGH' THEN 1 ELSE 0 END) AS HIGH,SUM(CASE CMS.price WHEN 'MED' THEN 1 ELSE 0 END) AS MED
FROM
carMake AS CM
INNER JOIN carmodels AS CMS ON CMS.makeId = CM.id
GROUP BY CM.make;
DB Fiddle链接:https://dbfiddle.uk/?rdbms=mysql_5.7&fiddle=dfb7344abd06a6a7130e1f4eef293476。 这包括创建表和查询。
,此sql查询应返回3列:
- 命名(例如:Toyota)
- 价格(例如:低)
- 组合的“计数”,如果存在,则为“ em” (例如:低价丰田的数量,在这种情况下为1)
from table.carMake cmk join table.carmodels cmd on (cmk.id = cmd.makeId)
group by cmk.make,cmd.price;
我还没有测试过,所以请告诉我它是否不起作用,我会予以纠正。
祝你好运!:)
,尝试以下操作:
选择'make:'+ c.make,
当cm.price ='低'
然后“低:” +计数(厘米价格),否则“低:” +“ 0”结束,
当cm.price ='medium'
然后“中:” +计数(厘米价格)
否则'medium:'+'0'结束,
cm.price ='high'的情况
然后是“高:” +计数(厘米价格)
否则'high:'+'0'结束
来自table.carMake c
内部连接table.carmodels cms.cms = cms.makeid上的cms