mysql语句返回没有外键的主键?

时间:2013-03-29 08:56:27

标签: mysql phpmyadmin

我想在数据库中查询没有关系的节点,即外键。我尝试了这个连接语句,但它没有工作

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    

2 个答案:

答案 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的节点

最佳做法是仅在数据库中使用小写,因为某些数据库区分大小写,而其他数据库则不区分大小。