【问题标题】:MySQL:Select a table (for email) based on another tables dataMySQL:根据另一个表数据选择一个表(用于电子邮件)
【发布时间】:2012-06-22 07:08:34
【问题描述】:

问题是:我在数据库中有 4 个表。一个是“呼叫”,另外三个是支持团队“IT”、“维护”、“工程”。在“呼叫”表中创建一行时,有一个名为“支持团队”的字段,并且该字段有 3 个可能的选项,维护和工程。我需要能够根据“呼叫”表中请求的团队向这些团队发送电子邮件。所有电子邮件信息都存储在各个团队的表格中。我希望这是有道理的。如果没有,我可以绘制问题。

【问题讨论】:

    标签: php mysql database


    【解决方案1】:

    创建 3 个字符串变量以进入调用表的 support_team 字段:it、maintenance、engineering。 让变量与数据库表同名吧,维护工程。 在调用表中插入新记录后,使用此

    $team = "Select calls.support_team from calls where id = $last_id ";
    "Select * from $team ";
    

    其中$last_id 是最近在调用表中插入的记录的ID。 由于$team 获取了表的名称:id、maintenance 或engineering;第二行代码只是获取团队成员的姓名。

    【讨论】:

      【解决方案2】:

      由于表是有限的,你可以做一堆左连接:

      SELECT * FROM calls
      LEFT JOIN team_it ON calls.`support team` = 'it' AND calls.id = team_it.id
      ... etc
      

      我不知道加入条件是什么,所以我猜到了calls.id = team_it.id

      如果这三个表已经有一个“外键”来调用,你可以用left join代替。

      【讨论】:

      • 谢谢!!!我决定让自己更轻松,并在“呼叫”表 IT、维护和工程中创建 3 个列,如果选择了该团队,则将它们设置为默认为“0”和“1”。现在,如果 IT 属实,我的脚本将通过电子邮件向 IT 部门的每个人发送电子邮件,其他部门也同样如此。但是,我将返回并按照您描述的方式尝试以供我自己将来参考。
      • @TimFowler 没问题。但是添加这 3 列与具有三个可能值的单列没有太大区别除非所有三个支持团队表中都可以存在调用。
      • 是的,可以调用任何团队组合,而不仅仅是单个团队
      • 在这种情况下,您可以只使用每个团队表中的外键来简化我在回答中提出的左连接。
      猜你喜欢
      • 2012-03-23
      • 1970-01-01
      • 2015-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多