我有一个非常简单的问题,我无法解决SQLite问题。我试图通过reading through a book并按照示例了解有关SQL的更多信息。其中一个练习是编写一个查询,该查询可以找出宠物桌中的哪个宠物是另一个宠物的父母。 pet.id和pet.parent列都使用INTEGER数据类型。所以对于一只宠物,id为2,另一只宠物为3 ...宠物模式有宠物(id,name,breed,parent);结构类型。例如:INSERT INTO pet VALUES(2, "scraps", "lolcat", 3);
会使这个pet.id = 2,pets.name =废料,pet.breed = lolcat,pet.parent = 3。在此表中,一些宠物也将成为其他宠物的父母。所以他们的pet.id也会匹配其他宠物的parent.id ......(看起来有点复杂)
我编写了一个我认为可以创建的查询,但它不返回任何结果或抛出任何错误。该查询是:
SELECT pet.name, pet.breed FROM pet WHERE
pet.parent = pet.id;
答案 0 :(得分:0)
如果你在谈论exercise 13:它实际上说:
写一个查询,可以找到给定宠物的孩子的宠物。
所以你有一个特定的父宠物及其ID,并且你正在搜索所有具有该parent
ID ID的宠物:
SELECT * FROM pet WHERE parent = 3
要查找所有与孩子/父母关系中的宠物,您必须同时进行涉及两个不同宠物的查询;这需要加入。
在这种情况下,这些记录来自相同的表有额外的皱纹,因此有必要使用别名(AS
)重命名一个或两个表,以便我们可以解决他们的专栏毫不含糊:
SELECT parent.name,
parent.breed,
child.name,
child.breed
FROM pet AS parent
JOIN pet AS child
ON parent.id = child.parent
WHERE ... -- if needed