2012-02-08 24 views
0

私は2つのテーブルを持っています:から選択してください

テーブル1(情報)は、UID、first_name、last_nameを含んでいます。 UIDを含む表2(カード)、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
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 
+0

大変ありがとうございました。矛盾したテーブル/ DB名のお詫びしかし、ソリューションに感謝します。とても有難い。 – Zac

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 
関連する問題