从同一个mysql列显示两个单独值的问题

时间:2016-02-03 17:07:52

标签: php mysql pdo

我有一个名为custom_values的mysql表,其中表中存在两列,一个名为“custome_field_id”,一个名为“value”。

“value”列包含两个不同的值,我需要在页面上拉取和显示。一个值是“订单号”值,另一个值是“日期”值。 “custom_field_id”列显示“Date”值的custom_field_id为33,“order”值为237

我想要做的是构建我的php查询,以便在一个select语句中,我可以显示这两个值。

例如最终得到我可以使用的$ actual_date和$ Order变量。

这是我当前的select语句,此时检索“order”值。但是我需要同时显示两个...我在我的select语句中尝试使用Alias,但它对我没用...

$stmt = $con->prepare("SELECT custom_values.value, issues.subject, issue_statuses.name, 
                issues.due_date, issues.id as issuesid, 
                users.firstname, users.lastname 
                FROM redmine.issues join redmine.projects on issues.project_id=projects.id 
                left join redmine.users on issues.assigned_to_id=users.id 
                left join redmine.custom_values ON issues.id=custom_values.customized_id 
                left join issue_statuses on issues.status_id=issue_statuses.id 
                where projects.id='".$_SESSION['id']."' 
                and custom_values.custom_field_id=237 ORDER BY $order ASC");

$stmt->execute();

感谢任何帮助!

3 个答案:

答案 0 :(得分:1)

我强烈建议在Ruby中将其构建为Redmine插件。在这个级别处理数据库容易出错;但是,使用Redmine中的CustomField和CustomValue类,将为您完成所有抽象。

您甚至可以使用Redmine API [1]来使用HTTP访问数据。

[1] http://www.redmine.org/projects/redmine/wiki/Rest_api

答案 1 :(得分:1)

SELECT v_order.value my_order
     , v_date.value date
     , i.subject
     , s.name
     , i.due_date
     , i.id issuesid
     , u.firstname
     , u.lastname 
  FROM issues i
  JOIN projects p
    ON p.id = i.project_id
  LEFT 
  JOIN users u
    ON u.id = i.assigned_to_id
  LEFT
  JOIN custom_values v_order 
    ON v_order.customized_id = i.id
   AND v_order.custom_field_id = 237 
  LEFT
  JOIN custom_values v_date 
    ON v_date.customized_id = i.id
   AND v_date.custom_field_id = 33
  LEFT 
  JOIN issue_statuses s
    ON s.id = i.status_id
 WHERE p.id = "_SESSION['id']" 
 ORDER 
    BY $order ASC

答案 2 :(得分:0)

如果以下情况正确: 在同一个数据库中,如果第二列中有两个不同的值,则有2列首先包含2个不同的数字;因此,每个项目有2行可以拉出

如果我误解了,请纠正我。

尝试以下方法:

... AND ( custom_values.custom_field_id=value_1 OR custom_values.custom_field_id=value_2 ) ORDER ...