我正在努力使用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")
这会产生以下错误:
'每个派生表必须拥有自己的别名'。
我是否使用内部联接以正确的方式进行此操作,如何为派生表提供别名?提前谢谢!
答案 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