【问题标题】:MySQL Inner Self Join not returning valuesMySQL内部自连接不返回值
【发布时间】:2014-02-24 19:23:22
【问题描述】:

以下查询引用了具有以下列的表:

  1. form_input_key
  2. form_input_value
  3. form_input_ID
  4. 顺序(将一条记录与表中的另一条记录相关联)

SQL:

SELECT
   OPTION_NAME.form_input_value as option_name
   OPTION_VALUE.form_input_value as option_value
FROM 
   form_input_detail as OPTION_NAME
INNER JOIN
   form_input_detail as OPTION_VALUE 
ON OPTION_VALUE.form_input_key = 'option_value' AND 
    OPTION_VALUE.form_input_ID = OPTION_NAME.form_input_ID
WHERE
    OPTION_NAME.form_input_ID = 17 AND
    OPTION_NAME.form_input_key = 'option_name'
ORDER BY 
    OPTION_NAME.order ASC

在做了一些研究之后,这个内部自连接应该在同一记录中返回带有 option_name 和 option_value 的行,但是它什么也不返回。见上图。

我想要做的是动态生成一个表单。这个实例将是一个 html 选择表单。其他表单输入位于不同的表中,我将选项存储在此表中。因此,“option_name”是用户在下拉列表中看到的名称,而 option_value 是提交的值。

【问题讨论】:

  • 由于某种原因,当我添加列表时,它会取消格式化代码?
  • 大概,当为? 插入值时,没有匹配项。这就引出了你想要做什么的问题。如果您编辑问题以提供示例结果,则可能还有另一种方法可以获取您正在寻找的结果。
  • 您为参数指定了哪些值(?)?
  • 我添加了上面的值。值是正确的。加入似乎有些问题。这是我完成的第一个内部连接,我仍在努力解决它。

标签: mysql key key-value


【解决方案1】:

您必须为“option_value”(在您的ON)和“option_name”(在您的WHERE)加上引号。

【讨论】:

  • 其实有引号,我只是忘了在上面加上。我进行了编辑以添加引号。问题依然存在。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-26
  • 2011-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多