SQL JOIN返回3个名为'id'的字段

sam*_*oul 3 php mysql sql join

我有一个使用3个表连接的SQL查询.它实际上工作正常,但是所有三个表都有一个名为'id'的字段,所以稍后当我尝试访问id字段时,它只访问最后一个字段中的字段.SQL查询如下:

"SELECT * FROM professors AS p 
            JOIN schools_professors AS sp 
            ON p.school_id = sp.id
            JOIN schools AS s ON sp.school_id = s.id  WHERE p.first_name LIKE '%".
                $search."%' OR p.last_name LIKE '%".$search.
                "%' LIMIT 0, 10;"
Run Code Online (Sandbox Code Playgroud)

现在,学校,教授和学校教授都有id列.我怎样才能获得教授的身份?这是我唯一关心的.

Joh*_*Woo 5

您不应该*在这种情况下使用,而是手动投影列名称并在其ALIAS上添加.例,

SELECT   ....,
         p.ID AS ProfessorID,
         s.ID AS SchoolID,
FROM     .....
Run Code Online (Sandbox Code Playgroud)

作为一个旁注,查询是脆弱的SQL Injection,如果值(小号变量)从外面走了进来.请查看下面的文章,了解如何防止它.通过使用,PreparedStatements您可以摆脱使用值周围的单引号.