0

我有以下两张表。

  1. 节点
  2. 属性

节点

id  title
1   test
2   test2

属性

id  node_id  title    value
1   1        featured   1
2   1        age        13
3   2        featured   2

我想要属性标题为“特色”的查询节点及其所有属性。

我尝试加入,但不知道如何同时查询其他属性。

是否可以进行单个查询来执行此操作?

4

2 回答 2

1

我认为这是一个简单的加入

SELECT  b.title as NodeTitle, a.title, a.value
FROM    attributes a
        INNER JOIN nodes b
            ON a.node_id = b.id
于 2012-10-18T07:18:14.990 回答
1

您可以使用子查询来获取所有具有“特色”属性的节点的 ID。外部查询将是JOIN获取其余属性。

像:

SELECT n.*, a.* 
FROM nodes n JOIN attributes a ON a.node_id=n.id 
WHERE n.id IN
  (SELECT DISTINCT no.id 
   FROM nodes no JOIN attributes at ON at.node_id=no.id AND at.title='featured')
于 2012-10-18T07:21:53.300 回答