2016-09-02 29 views
0

は、これは私がチームのテーブルの上に内部結合を行う必要があり、私のクエリインナー句

$searched = 'SELECT first_name, surname, team, id, time FROM users WHERE first_name LIKE "'.$firstname.'%" AND surname LIKE "'.$surname.'%"' 

ですと合流します。

構造は次のとおりです。

id 
teamname 
slug 

チーム名を取得する必要があります。参加はteams.idとusers.idにあります。

私は文法を正しく理解できないようです。

+0

が予約語 – JYoThI

答えて

0

INNER JOINが必要です。またtimeはMySQLのためにkeywordであり、それをエスケープする方が良いです。フィールドidはあいまいなので、テーブル名と一緒に使用する必要があります。最後に、SQLインジェクションの脅威にさらされています。

SELECT users.first_name, users.surname, users.team, users.id AS users_id, `time` 
FROM users 
INNER JOIN teams 
ON teams.id = users.id 
WHERE users.first_name LIKE "'.$firstname.'%" AND users.surname LIKE "'.$surname.'%" 

また、teams.idusers.idにする必要がありますすぐ登録しようという特定の理由があります。彼らは別のものとされています。

+0

時間teams.id上のチームに参加する必要があり、これはキーワードはありませんか? – Strawberry

+0

@Strawberryではありません= users.id –

+1

キーワードですが、予約語はありません。 – Shadow

0

whereの条件にteam.id = users.teamidまたはteam.userid = users.idのいずれかを設定しないでください。また、選択では "チーム"を使用しています。私はそれが "チーム名"でなければならないと思う。

SQLは、おそらく内部

SELECT 
    first_name, 
    surname, 
    teamname, 
    id, 
    time 
FROM 
    users, 
    teams 
WHERE 
     first_name LIKE "'.$firstname.'%" 
    AND surname LIKE "'.$surname.'%"' 
    AND users.teamid = teams.id