2

我正在编写一个 SQL 查询以获取要填充到可滚动表中的数据。

将要比较的内容的内容 ID(上图中的 Content1、Content2、Content3 ..)将作为查询的输入。

因为,为了比较至少需要 2 个项目,传递给查询的 id 数将始终为 2 或大于 2。

以下是 3 个表的 SQL,从中获取所需的数据。

下表包含要比较的参数名称:

CREATE TABLE tbl_content_commons (
id integer PRIMARY KEY,
content_common_code char(20) NOT NULL,
content_common_name char(100) NOT NULL // The comparison label
)

下表包含上表中比较标签(content_common_name char)的代码和内容的内容id(将作为查询的参数传递)

CREATE TABLE tbl_comparison_values (
id integer PRIMARY KEY,
tbl_content_common_id integer NOT NULL,// ID's of the Contents under comparison
userneed_comparison_label_id  integer NOT NULL,// ID of comparison label in the table above
value char(50) NOT NULL// Value corresponding to a comparison label - if it exists for a given content id 
)

最后,包含内容名称的表(Content1,Content2..),其 id 作为参数传递给查询

CREATE TABLE userneed_comparison_labels (
id integer PRIMARY KEY,
name  char(50) NOT NULL// Name of the content whose id's are passed through queries. content ID  in the table above
)

我在编写查询以获取数据以帮助我填充所附图像中显示的表方面付出了足够的努力,但没有成功。我可以展示我写的查询,但由于它再次延长了问题,我不在这里发帖。

任何有关如何继续编写此 SQL 查询的指导或帮助将不胜感激。

4

1 回答 1

2

这个怎么样...

select c.content_common_name,
l.name,
v.value
from userneed_comparison_labels l
left join tbl_comparison_values v on l.id = v.userneed_comparison_label_id
left join tbl_content_commons c on c.id = v.tbl_content_common_id
where c.id in (1, 2, 3)

有关更多详细信息,请参阅SQL Fiddle

选择 SQLLite (SQL.js) 版本。如果询问您是否要使用 WebSQL,请单击取消。

于 2013-05-17T21:20:30.760 回答