我有以下两张表。
- 节点
- 属性
节点
id title
1 test
2 test2
属性
id node_id title value
1 1 featured 1
2 1 age 13
3 2 featured 2
我想要属性标题为“特色”的查询节点及其所有属性。
我尝试加入,但不知道如何同时查询其他属性。
是否可以进行单个查询来执行此操作?
我认为这是一个简单的加入
SELECT b.title as NodeTitle, a.title, a.value
FROM attributes a
INNER JOIN nodes b
ON a.node_id = b.id
您可以使用子查询来获取所有具有“特色”属性的节点的 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')