MySQL内部自我加入不返回值

时间:2014-02-24 19:23:23

标签: mysql key key-value

以下查询引用表,其中包含以下列:

  1. form_input_key
  2. form_input_value
  3. form_input_ID
  4. order(将记录与表中的另一条记录关联)
  5. 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是提交的值。

1 个答案:

答案 0 :(得分:0)

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