内部加入 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.id
和 users.id
上有什么特别的原因吗?它们应该是不同的东西。
where 条件中不应该有 team.id = users.teamid
或 team.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
这是我的查询
$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.id
和 users.id
上有什么特别的原因吗?它们应该是不同的东西。
where 条件中不应该有 team.id = users.teamid
或 team.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