内部联接与where子句

时间:2016-09-02 12:18:24

标签: mysql inner-join where-clause

这是我的查询

 $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中的联接的团队名称。

我似乎无法正确使用语法。

2 个答案:

答案 0 :(得分:0)

您需要INNER JOIN。对于MySQL,time也是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.'%"

此外,JOIN应该在teams.idusers.id上是否有任何特殊原因。它们应该是不同的东西。

答案 1 :(得分:0)

你应该在where条件中没有team.id = users.teamidteam.userid = users.id吗?同样在你选择的#34; team"中。我想它应该是" teamname"。

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