这两个查询是否相同?

马丁·阿杰

我在代码中看到此查询:

INSERT INTO comments (post_id, user_id, table_code, content, author_id, pinged_id, date_time)
SELECT ?,?,?,?,?,?,?
FROM qanda qa, users u
WHERE qa.id=? and author_id IS NULL
limit 1;

我已经在上面写了查询。.现在,我相信, user u查询中的内容是多余的。我对吗?

你知道我为什么要问这个问题吗?因为在我所有代码的后面总有一个原因。现在我不记得写这篇文章的原因了, users u这就是为什么我担心将其删除。

无论如何,要删除, users u更改吗?还是完全多余?

蒂姆·比格莱森(Tim Biegeleisen)

由于author_id属于qanda表,因此隐式联接users表没有任何作用。实际上,这是交叉连接,因为没有连接条件,这意味着它可能是真正的性能消耗。您可以尝试使用以下简化INSERT语句:

INSERT INTO comments (post_id, user_id, table_code, content, author_id,
                      pinged_id, date_time)
SELECT ?,?,?,?,?,?,?
FROM qanda qa
WHERE qa.id=? AND author_id IS NULL
LIMIT 1

但这并不能解释users表格最初在做什么。也许您是从其他人(或某物)继承了此查询的,并且有一次出于合理原因使用了联接。无论如何,现在就可以轻松地删除债务。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章