Mysql SQL-多个表的内部联接引发语法错误

Mysql SQL-多个表的内部联接引发语法错误,mysql,sql,inner-join,Mysql,Sql,Inner Join,我已经做了一些搜索,并根据这里的示例和其他在线来源多次重新处理我的SQL,但每次运行此SQL时,我都会得到相同的“#1064-您的SQL语法有错误”错误 我正在尝试使用内部连接连接四个表,它们应该始终有匹配的数据要输入(即,对于每个有效的令牌/token\u id,应该始终有一整行)。我使用的是MySQL版本5.7.26 以下是我正在尝试运行的查询: SELECT i.name AS invitee_name, c.first_name AS child_first,

我已经做了一些搜索,并根据这里的示例和其他在线来源多次重新处理我的SQL,但每次运行此SQL时,我都会得到相同的“#1064-您的SQL语法有错误”错误

我正在尝试使用内部连接连接四个表,它们应该始终有匹配的数据要输入(即,对于每个有效的令牌/token\u id,应该始终有一整行)。我使用的是MySQL版本5.7.26 以下是我正在尝试运行的查询:

   SELECT
    i.name AS invitee_name,
    c.first_name AS child_first,
    c.last_name AS child_last,
    s.invite_status,
    c.avatar
  FROM
    Invites AS i, Tokens AS t, Children AS c, Invite_Statuses AS s
  WHERE
    t.token = sdie02d
  INNER JOIN
    t ON t.token_id = i.token_id
  INNER JOIN
    c ON c.child_id = i.child_id
  INNER JOIN
    s ON s.status_id = i.status_id
我(每次)收到的全部错误是:

这些表如下所示:

Invites
+---------+----------+----------+-----------+---------------+----------+
| user_id | child_id | token_id | status_id |     email     |   name   |
+---------+----------+----------+-----------+---------------+----------+
|       9 |        2 |        1 |         1 | a@example.com | John Doe |
|       9 |        3 |        2 |         1 | b@example.com | Jane Doe |
+---------+----------+----------+-----------+---------------+----------+
感谢您提供的任何帮助。

此处出现多个错误

   SELECT
    i.name AS invitee_name,
    c.first_name AS child_first,
    c.last_name AS child_last,
    s.invite_status,
    c.avatar
  FROM
    Invites AS i
  INNER JOIN Tokens AS t
    ON t.token_id = i.token_id
  INNER JOIN Children AS c
    ON c.child_id = i.child_id
  INNER JOIN Invite_Statuses AS s
    ON s.status_id = i.status_id
  WHERE
    t.token = qme34jh

查看其他内部联接的示例,尝试将“where”语句放在末尾,看看是否有效

您需要在where子句条件“qme34j”中添加“”

declare @Tokens Table ( token_id int, token varchar(100))
declare @Children Table ( child_id int, first_name varchar(100), last_name varchar(100), avatar int)
declare @Invite_Statuses table  (status_id int, invite_status  varchar(100))

SELECT
 i.name AS invitee_name,
 c.first_name AS child_first,
 c.last_name AS child_last,
 s.invite_status,
 c.avatar
FROM
 @Invites AS i
INNER JOIN @Tokens AS t
 ON t.token_id = i.token_id
INNER JOIN @Children AS c
 ON c.child_id = i.child_id
INNER JOIN @Invite_Statuses AS s
 ON s.status_id = i.status_id
WHERE
 t.token = 'qme34jh'

不要将联接表的名称/别名放在
中的
位置。将它们放入
内部联接中
。e、 g.
内部连接令牌作为t.token\u id=i.token\u id上的t
。在
的where
中,只有第一个/'main'表应该命名/别名。此时,与任何基本的介绍性书籍或教程在一起5分钟将是有益的。where在内部连接之后请在代码问题中给出一个--cut&paste&runnable代码,包括作为代码输入的最小代表性示例;期望和实际输出(包括逐字记录错误消息);标签和版本;清晰的说明和解释。尽可能少地给出代码,即显示为OK的代码,并通过显示为not OK的代码进行扩展。(调试基础。)用于包含DBMS和DDL(包括约束和索引)的SQL,并将其作为格式化为表的代码输入。您有一个语法错误。阅读语法和手册。显示组成子表达式是正确的。
Children
+----------+------------+-----------+--------+
| child_id | first_name | last_name | avatar |
+----------+------------+-----------+--------+
|        1 | Timmy      | Johnson   |      4 |
|        2 | Jenny      | Smith     |     32 |
|        3 | Jake       | Jones     |     12 |
+----------+------------+-----------+--------+
Invite_Statuses
+-----------+---------------+
| status_id | invite_status |
+-----------+---------------+
|         1 | invited       |
|         2 | accepted      |
|         3 | rejected      |
+-----------+---------------+
   SELECT
    i.name AS invitee_name,
    c.first_name AS child_first,
    c.last_name AS child_last,
    s.invite_status,
    c.avatar
  FROM
    Invites AS i
  INNER JOIN Tokens AS t
    ON t.token_id = i.token_id
  INNER JOIN Children AS c
    ON c.child_id = i.child_id
  INNER JOIN Invite_Statuses AS s
    ON s.status_id = i.status_id
  WHERE
    t.token = qme34jh
declare @Tokens Table ( token_id int, token varchar(100))
declare @Children Table ( child_id int, first_name varchar(100), last_name varchar(100), avatar int)
declare @Invite_Statuses table  (status_id int, invite_status  varchar(100))

SELECT
 i.name AS invitee_name,
 c.first_name AS child_first,
 c.last_name AS child_last,
 s.invite_status,
 c.avatar
FROM
 @Invites AS i
INNER JOIN @Tokens AS t
 ON t.token_id = i.token_id
INNER JOIN @Children AS c
 ON c.child_id = i.child_id
INNER JOIN @Invite_Statuses AS s
 ON s.status_id = i.status_id
WHERE
 t.token = 'qme34jh'