1

結合を使用した単純なクエリでエラーが発生しました。

私のクエリ:

SELECT users_sessions.user_id AS users_sessions_user_id,
       users.last_name AS users_last_name,
       users.first_name AS users_first_name 
FROM prefix_users_sessions AS users_sessions,
     prefix_users AS users INNER JOIN 
     users_sessions 
     ON users.id = users_sessions.user_id

私のエラー:

SQLSTATE[42000]: 構文エラーまたはアクセス違反: 1066 一意でないテーブル/エイリアス: 'users_sessions'

メッセージがわかりません...エイリアスが複数使用されている場所がわかりません。

誰がこの問題を解決するのを手伝ってくれますか?

ご協力ありがとうございます。

--解決済み--

適切なクエリは次のとおりです。

    SELECT users_sessions.id AS users_sessions_id,
           users_sessions.user_id AS users_sessions_user_id,
           users.lastname AS users_lastname, users.firstname AS
           users_firstname
    FROM prefix_users_sessions AS users_sessions
           JOIN prefix_users AS users ON users.id = users_sessions.user_id 
4

3 に答える 3

1

あなたのfrom句はすべて台無しです。簡単なルール: 句 ではコンマを使用しないでください。常に明示的な構文を使用してください。FROMJOIN

また、短いテーブル エイリアスを使用して、クエリの記述と読み取りを容易にします。

SELECT us.user_id AS users_sessions_user_id,
       u.last_name AS users_last_name,
       u.first_name AS users_first_name 
FROM prefix_users_sessions us INNER JOIN
     prefix_users  u 
     ON u.id = us.user_id;

users_sessionsこれは、 というテーブルが実際にはなく、 というテーブルを使用することを意図していると仮定していますprefix_users_sessions

于 2015-11-05T20:19:59.633 に答える
0

テーブルprefix_users_sessionsを 2 回指定しました

SELECT  users_sessions.user_id AS users_sessions_user_id,
        users.last_name AS users_last_name,
        users.first_name AS users_first_name
FROM    prefix_users_sessions AS users_sessions
        INNER JOIN prefix_users AS users 
            ON users.id = users_sessions.user_id
于 2015-11-05T20:19:28.787 に答える