我想在数据库中查询没有关系的节点,即外键。我尝试了这个连接语句,但它没有工作
SELECT nodes.*, relationships.* FROM nodes inner JOIN relationships ON nodes.id = null;
如何只显示没有关系的节点?谢谢
nodes Relationships
----- -------------
id int(11), id int(11),
name varchar(35), to int(11), //this is the destination node from the id relation
color varchar(7), data varchar(0) null
type varchar (12), Foreign key (id) references nodes(id)
Primary key (id)
engine = innodb
答案 0 :(得分:2)
您的问题是ON nodes.id = null
您必须在ON
语句中使用连接时的列名。如果您要设置nodes.id = null
,请在where
SELECT
nodes.*
FROM
nodes left JOIN relationships ON nodes.id = Relationships.id
where
Relationships.id is null;
答案 1 :(得分:0)
SELECT * FROM nodes WHERE id NOT IN (SELECT `to` from Relationships);
这将返回在Relationships表中没有id的节点
最佳做法是仅在数据库中使用小写,因为某些数据库区分大小写,而其他数据库则不区分大小。