我的数据库中有三个表:苹果,冰箱和房屋。每个苹果属于一个冰箱(它有一个参考冰箱所在的柱子),每个冰箱都属于一个房子。问题是,每个苹果也属于一个房子。我想这不是“标准化”或其他什么,但它就是这样。
显然,每个苹果应该属于冰箱所属的房子。毕竟苹果不能同时在两个不同的地方。所以,我的问题是这样的:什么SQL语句将允许我找到所有“坏苹果”,由于某种原因错误地引用了不同的房子而不是他们应该在的冰箱。换句话说,我需要找到包含矛盾信息的苹果。
我不知道这是否是一个“加入”问题,但我确信这可能是一种非常简单的方法来解决这个问题。我只是不知道它是什么。谢谢你的帮助!
答案 0 :(得分:2)
SELECT a.*
FROM apples a
INNER JOIN fridge f
ON f.appleID = a.appleID
WHERE a.houseID <> f.houseID
当然,这是一个糟糕的架构设计,但你似乎已经知道了。
答案 1 :(得分:2)
select a.*
from apples a
inner join refrigerators r
on a.refrigeratorid = r.refrigeratorid
where a.houseid != r.houseid
答案 2 :(得分:1)
这将有助于您:A Visual Explanation of SQL Joins。它就在那里。