所以我有三张桌子:
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
但这不起作用!
非常感谢任何帮助!
谢谢! 乔恩
答案 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。