如何查询此表?

时间:2012-10-18 07:16:26

标签: mysql join

我有以下两张表。

  1. 节点
  2. 属性
  3. 节点

    id  title
    1   test
    2   test2
    

    属性

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

    我想查询属性标题为'featured'的节点及其所有属性。

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

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

2 个答案:

答案 0 :(得分:1)

我认为这是一个简单的连接

SELECT  b.title as NodeTitle, a.title, a.value
FROM    attributes a
        INNER JOIN nodes b
            ON a.node_id = b.id

答案 1 :(得分: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')