SQL Select query join multiple tables
我有此代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | function getPricing() { $returnarr = array(); $dcid = (isset($_REQUEST['dcid'])) ?"WHERE datacentre_id='" . mysql_real_escape_string($_REQUEST['dcid']) ."'" : ''; $addons = $_REQUEST['addon']; if ($addons =="true") $sql ="SELECT * FROM addonprices $dcid ORDER BY addon_desc ASC"; else $sql ="SELECT l.l_name, p.* FROM pricing p LEFT JOIN locations l ON l.location_id=p.datacentre_id $dcid ORDER BY CASE splitsize WHEN 'f' THEN 0 WHEN 'w' THEN 1 WHEN 'h' THEN 2 WHEN 'q' THEN 3 WHEN '2U' THEN 4 WHEN '1U' THEN 5 ELSE 6 END DESC, amps ASC"; $result = mysql_query($sql); while ($row = mysql_fetch_assoc($result)) { $returnarr[] = $row; } header('Content-type: application/json'); echo json_encode($returnarr); } |
我需要在两个select语句中添加另一个表,并在
我正在尝试使用以下switch语句将货币提取到javascript文件中以获取价格:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | var currency =""; switch (row.currency) { case '1' : currency ="£"; break; case '2' : currency =""; break; case '3' : currency =""; break; default: currency ="£"; break; } |
甚至当货币等于2或3时,它仍然会显示为默认值...我不确定是switch语句出错还是sql查询。
更新
只有这一行有问题:
1 | $sql ="SELECT l.l_name, p.*, slas.currency FROM pricing p LEFT JOIN locations l ON l.location_id=p.datacentre_id LEFT JOIN slas ON slas.datacentre_id = p.datacentre_id $dcid ORDER BY CASE splitsize WHEN 'f' THEN 0 WHEN 'w' THEN 1 WHEN 'h' THEN 2 WHEN 'q' THEN 3 WHEN '2U' THEN 4 WHEN '1U' THEN 5 ELSE 6 END DESC, amps ASC"; |
摘自以下答案。
我认为这里的问题是
的列连接到另一个表
我建议在哪里
1 | $dcid = (isset($_REQUEST['dcid'])) ?"WHERE p.datacentre_id='" . mysql_real_escape_string($_REQUEST['dcid']) ."'" : ''; |
,查询为
1 2 3 4 | if ($addons =="true") $sql ="SELECT p.*, slas.currency FROM addonprices p LEFT JOIN slas ON slas.datacentre_id = p.datacentre_id $dcid ORDER BY addon_desc ASC"; else $sql ="SELECT l.l_name, p.*, slas.currency FROM pricing p LEFT JOIN locations l ON l.location_id=p.datacentre_id LEFT JOIN slas ON slas.datacentre_id = p.datacentre_id $dcid ORDER BY CASE splitsize WHEN 'f' THEN 0 WHEN 'w' THEN 1 WHEN 'h' THEN 2 WHEN 'q' THEN 3 WHEN '2U' THEN 4 WHEN '1U' THEN 5 ELSE 6 END DESC, amps ASC"; |
在两种情况下都请注意其中带有