内部加入 where 子句

Inner join with where clause

这是我的查询

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

我需要对 table 个团队进行内部联接。

结构如下

id
teamname
slug

我需要获取 teams.id 和 users.id 中加入的团队名称。

我似乎无法正确理解语法。

你需要INNER JOIN。另外 time 是 MySQL 的 keyword ,最好转义它。字段 id 应与 table 名称一起使用,因为它们不明确。最后,您受到了 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 上有什么特别的原因吗?它们应该是不同的东西。

where 条件中不应该有 team.id = users.teamidteam.userid = users.id 吗?同样在 select 中你使用了 "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