douzhui1972 2013-02-20 06:06
浏览 225

mysql多个INNER JOIN将两个表列添加到另一个表中

three tables

status : ID,member_1,member_2 -->

(eg. 12, member_Joseph, member_John ; 
     22, member_Jacob, member_Jarrod ; 
     31, member_Jarrod, member_John 
     11, member_John, member_Jacob)

submit : ID,student -->

(eg. 12, Amy ; 
     22, Brian; 
     31 Susan ; 
     11 Kyle) 

info : member_name, contact -->

(eg. member_Joseph, joseph@name.name; 
     member_Jacob, jacob@name.name ; 
     member_Jarrod, jarrod@name.name ; 
     member_John, john@name.name )

New table to build from query:

 member_Joseph, joseph@name.name, Amy; 
 member_Jacob, jacob@name.name, Kyle ; 
 member_Jarrod, jarrod@name.name, Brian, Susan ; 
 member_John, john@name.name, Amy, Susan, Kyle )

I'd like to make arrays of all students assigned to each member in status table
eg.
array1 --> member_Joseph: student 1, student 2, student 3
array2 --> member_John: student 2, student 4, student 5
array3 -->member_Jacob: student 3, student 5, student 1

Would that be:

$query = db_query("
    SELECT info.member_name, submit.student  
    FROM {info} 
    INNER JOIN {status} 
    ON info.member_name = status.member_1
    INNER JOIN {status}
    ON info.member_name = status.member_2
    INNER JOIN {submit}
    ON submit.id = status.id
");
while($result = db_fetch_array($query)){
echo $result['student']; //iterate through members and print students for each
}

The error is: "Not unique table/alias"

(fyi: I'm using Drupal 6 syntax)

  • 写回答

1条回答 默认 最新

  • dongyanfeng0563 2013-02-20 06:23
    关注

    I think it should be the table info should be joined twice so you can get the member_name of each memberID. You also need to supply an alias for the table so they can be uniquely identified, eg

    SELECT  a.*, 
            b.member_name memberName1,
            c.member_name memberName2,
            // other columns you might want to show
    FROM    status a        
            INNER JOIN info b
                ON a.member_1 = b.member_name
            INNER JOIN info c
                ON a.member_2 = c.member_name
            INNER JOIN submit d
                ON a.ID = d.ID
    

    To further gain more knowledge about joins, kindly visit the link below:

    评论

报告相同问题?

悬赏问题

  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏