加入我无法弄清楚的查询问题

时间:2011-09-11 02:54:34

标签: android sqlite

所以我有三张桌子:

Table Place:  _id autoincrement not null primary key, name TEXT,place TEXT
Table Food: _id autoincrement not null primary key, food TEXT
Table Person:  _id autoincrement not null primary key, personName TEXT, PLACE_ID INTEGER NOT NULL, FOOD_ID INTEGER

我想提取所有食物和地方信息,但是如人员表中所述,FOOD_ID可以有空值。假设数据库已正确填充。我该如何查询?我试着跟随查询:

select * from Person,Food,Place where Place._id = Person.PLACE_ID and if not null Person.Food_id Food._id = Person.FOOD_ID

但这不起作用!

非常感谢任何帮助!

谢谢! 乔恩

1 个答案:

答案 0 :(得分:1)

SELECT *
FROM Person p
INNER JOIN Place pl
    ON p.PLACE_ID = pl._id
LEFT OUTER JOIN Food f
    ON p.FOOD_ID = f._id

请记住,即使右表中没有匹配的行,LEFT OUTER连接也会返回左表中的所有行(在本例中为Person)。右侧表的值都将为NULL。