mysql - 一次连接多个表 :

标签 mysql sql join mysql-error-1066

我使用以下 SQL 语句:

SELECT reply.id, reply.content, author.username
FROM thread, reply, author
JOIN thread_reply ON thread.id = thread_reply.thread_id
JOIN reply ON thread_reply.reply_id = reply.id
JOIN author_reply ON thread.id = author_reply.thread_id
JOIN author ON author_reply.author_id = author.id
WHERE thread.id = '40'

我有以下表格:

thread_reply: thread_id, reply_id

reply: id, content, created (timestamp)

author: id, username, password_hash, salt #etc

thread: id, content, created

author_reply: author_id, reply_id

我不断收到以下错误:

#1066 - Not unique table/alias: 'reply'

哦,我正在使用 MySQL。

最佳答案

您在原始查询中的 threadauthorreply 之间存在隐式 CROSS JOIN,并加入第二次使用相同的表而不使用别名。

使用这个:

SELECT  reply.id, reply.content, author.username
FROM    thread t
JOIN    thread_reply tr
ON      tr.thread_id = t.id
JOIN    reply r
ON      r.id = tr.reply_id
JOIN    author_reply ar
ON      ar.reply_id = r.id
JOIN    author a
ON      a.id = ar.author_id
WHERE   thread.id = '40'

关于mysql - 一次连接多个表 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5514605/

相关文章:

c# - 在文本框中的不同行上显示数据库中的值 C#

mysql - 无法在 GKE 上运行 MySQL 从属实例

sql - 在 SELECT 语句 : what's the optimal SQL approach? 之后需要行计数

MySQL 连接查询性能问题

python - 如何在不使用 panda 的情况下在 python 中加入 2 个 csv?

c# - 在两个不同mysql数据库的两个表之间复制大量行

php - 我认为这段代码很容易受到攻击。可能是什么原因?

php - undefined variable 错误,但我想要的是工作正常

MySQL : Get count of rows containing name from different table, 两个表都有关联

sql - “DataFrame”对象没有属性 'orderby'