【问题标题】:Selecting multiple columns with the same name in MySQL在 MySQL 中选择多个具有相同名称的列
【发布时间】:2012-10-09 18:33:10
【问题描述】:

我想访问 mysql 中的两个表,并想使用两个表中的字段。我使用内部连接来匹配两个表,但想知道如何获取两个表中的字段,因为两个表具有相同的字段名称和不同的值。 这是我的查询...

$query1 = mysql_query("SELECT facilitator.FacID, facilitator.email, assigned.email FROM facilitator INNER JOIN assigned ON facilitator.FacID = assigned.FacID WHERE assigned.email = '$stuemail' AND facilitator.active = '1'") or die($query."<br/><br/>".mysql_error());
            while($line1=mysql_fetch_array($query1,MYSQL_ASSOC)){
                $faci= $line1['FacID'];
                $facemail = $line1['email'];
                $stumail2 = $line1['email'];
.............code goes on.............. 

我想获取两个电子邮件字段值,但不知道该怎么做。我确定我为 $stumail2 写的内容是错误的。请帮我。

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    你有几个选择。

    首先是在 MySQL 中分配一个字段别名:

    SELECT
        facilitator.FacID,
        facilitator.email AS facilitatorEmail,
        assigned.email AS assignedEmail
        ....
    

    第二个,因为您使用的是mysql_fetch_array(),是通过索引访问字段。 facilitator.email 字段的索引为 1assigned.email 的索引为 2,因此您可以使用:

    $facemail = $line1[1];
    $stumail2 = $line1[2];
    

    或者,默认情况下,MySQL应该为每个重复的列名添加一个递增数字(从1 开始)。因此,您应该可以使用email1 访问assigned.email 列:

    $facemail = $line1['email'];
    $stumail2 = $line1['email1'];
    

    【讨论】:

      【解决方案2】:

      您可以在列上使用别名来消除歧义,例如:

      SELECT facilitator.FacID, 
          facilitator.email as FacilitatorEmail, 
          assigned.email as AssignedEmail
      FROM ...
      

      【讨论】:

        【解决方案3】:

        您只需要在查询中使用“as”关键字:

        $query1 = mysql_query("SELECT facilitator.FacID, facilitator.email as fac_email, assigned.email as assign_email FROM facilitator INNER JOIN assigned ON facilitator.FacID = assigned.FacID WHERE assigned.email = '$stuemail' AND facilitator.active = '1'") or die($query."<br/><br/>".mysql_error());
                while($line1=mysql_fetch_array($query1,MYSQL_ASSOC)){
                    $faci= $line1['FacID'];
                    $facemail = $line1['fac_email'];
                    $stumail2 = $line1['assign_email'];
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-02-10
          • 1970-01-01
          • 2022-07-13
          • 1970-01-01
          • 2020-01-03
          • 2017-03-24
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多