如何使用JOIN执行此操作?或者通常可能吗?

时间:2014-06-10 20:46:45

标签: mysql

我有一个表pages和另外两个名为page_optionspage_option_values的表,可以在不修改表格布局的情况下使可选选项成为可能。

表格具有以下结构(shortend):

pages:
 * page_id
 * name

page_options:
 * page_option_id
 * name

page_option_values:
 * page_id
 * page_option_id
 * value

我可以从MySQL获取结果,从pages中选择所有列,并显示来自page_options as virtual column的名称列,其值为page_option_values吗?

编辑:

我现在有以下查询 - 但现在不知道为什么它不起作用?

SELECT
 n.page_id,
 n.page_name,
 a.column_name,
 v.value as a.column_name
FROM pages n
JOIN page_attribute_value v on v.page_id = n.page_id
JOIN page_attributes a on a.attribute_id = v.attribute_id

1 个答案:

答案 0 :(得分:0)

为了让你开始,你需要左连接

您将表格排列为Page_Options,page_option_values是正确的还是page_attribute而不是选项?

Select p.page_Id, p.name, po.page_option_Id, PO.name, POV.value
from pages P
LEFT JOIN page_option_Values POV
 on P.page_ID = POV.Page_Id
LEFT JOIN page_option PO
 on PO.Page_OptioN_ID = POV.Page_Option_ID