选择From Inner join - PHP / MYSQL

时间:2012-02-08 15:46:38

标签: php mysql

我正在努力使用MYSQL查询 - 我有2个表:

表1(info)包含UID,first_name,last_name。 表2(卡)包含UID,pic。

我要做的是将所有结果都放到一个数组中:

WHERE UID IN '$ids' AND LEFT(last_name,1) = '$letter' ORDER BY last_name, first_name ASC

我认为INNER JOIN所以我当前的代码是:

("SELECT UID, first_name, last_name, pic FROM 
    (SELECT info.first_name,info.last_name,card.pic FROM info 
     INNER JOIN card ON info.UID=card.UID)
  WHERE LEFT(last_name,1) = '$letter' ORDER BY last_name, first_name ASC")

这会产生以下错误:

'每个派生表必须拥有自己的别名'。

我是否使用内部联接以正确的方式进行此操作,如何为派生表提供别名?提前谢谢!

2 个答案:

答案 0 :(得分:2)

select b.UID, g.first_name, g.last_name, b.pic
from user_data.general_info g
inner join user_data.Bcards b on g.UID = b.UID
where LEFT(g.last_name, 1) = '$letter'
order by g.last_name, g.first_name asc

答案 1 :(得分:1)

应该命名内部查询。

    SELECT users.UID, users.first_name, users.last_name, users.pic FROM 
    (SELECT info.first_name,info.last_name,card.pic FROM user_data.general_info 
    INNER JOIN user_data.Bcards ON general_info.UID=Bcards.UID) users
    WHERE LEFT(users.last_name,1) = '$letter' ORDER BY users.last_name, users.first_name ASC