【问题标题】:#1193 - Unknown system variable 'id'#1193 - 未知系统变量 'id'
【发布时间】:2015-08-03 22:32:34
【问题描述】:

花了8个小时检查这个问题,但没有任何结果,有人能说什么错了吗?

>SELECT id FROM posts AS post_id;SET categories.id  AS category_id;  
>SELECT title, contents, date_posted, categories, name FROM posts INNER JOIN 
>categories ON categories, id = posts, cat_id ORDER BY id DESC  

并得到一个错误 $ #1193 - 未知系统变量 'id'

我也尝试过这样的事情:

>SELECT id FROM posts AS post_id;  
>SELECT id FROM categories AS category_id;  
>SELECT COALESCE (title, contents, date_posted, categories, name) 
>FROM posts INNER JOIN categories ON categories, id = posts, cat_id
>ORDER BY id DESC

还有很多其他无法正常工作的员工。

工作查询:

 >SELECT posts . p_id AS post_id, categories . c_id AS category_id,  
    >title, contents, date_posted, categories . name   
    >FROM posts  
    >INNER JOIN categories ON categories . c_id = posts . cat_id  
    >ORDER BY posts.p_id DESC;  

【问题讨论】:

  • 抱歉英语不好)
  • ON categories, id??你的意思是ON categories.id
  • 不,我的意思是必须加入 2 个表 ID,来自“类别”和“帖子”,以及它的 ID。
  • 对不起,你说得对)谢谢)
  • 你能把SHOW CREATE TABLE的结果粘贴到每个表吗?

标签: mysql


【解决方案1】:

尝试将数据库中的变量名称 id 更改为其他名称。 id 是保留名称。

【讨论】:

  • 谢谢,但没有帮助,只是一个错误 #1193 - Unknown system variable 'c_id'... 新代码看起来:>SELECT id FROM posts AS post_id; SET categories.c_id AS category_id; SELECT title, contents, date_posted, categories, name FROM posts INNER JOIN categories ON categories, c_id = posts, cat_id
  • 抱歉无法在 cmets 中编写代码 + 他们添加了 TRIM func)
  • @VitaliySobol 确保您正在更改数据库中的 ID,以及您从数据库中选择的代码。
  • 感谢您的选择,但现在找不到“c_id”(重命名为“id”)。首先,我想在sql中执行请求,如果它有效,然后在代码中进行更改。
【解决方案2】:

如果我理解您的查询,请按以下方式使用-

SELECT pst.id AS post_id,cat.id AS category_id, title, contents, date_posted, categories, NAME 
FROM posts AS pst 
INNER JOIN categories cat ON cat.id = pst.cat_id 
ORDER BY pst.id DESC;

注意:您可以根据 cat.id 进行排序,然后进行相应更改。

【讨论】:

  • 感谢您的建议,但出现新错误>#1054 - '字段列表'中的未知列'类别'
  • 也许有人知道 SELECT 和 FROM 的任何同义词,它们在 MySQL 中做同样的事情吗?比我可以尝试重写代码...因为我找不到关于这个主题的任何帖子。
  • 实际上我从您的查询中获取了列,似乎您的任何表中都没有类别列或存在于两个表中,如果它存在于两个表中,则在假设它属于类别之前使用别名然后使用 cat.categories 如果它在任何表中都不存在,然后从表中删除此列。
  • 感谢您的建议,但在两个表中都只有 'id' 作为主键,其他标题不重复...此查询应在主页上显示两个表中的信息(也许是可以帮忙)。所以也许你可以给我建议如何以其他方式进行这个查询。谢谢
  • 只需在所有字段中加上别名并检查,假设标题属于类别表然后使用 cat.title,类别相同使用它 cat.categories...即使我怀疑会有任何列'任何表中的类别'...所以如果它不是列则删除...
猜你喜欢
  • 2013-03-27
  • 2019-07-24
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-18
相关资源
最近更新 更多