我的SQLite数据库中有两个表(虚拟名称):
表1: FileID F_Property1 F_Property2 ...
表2: PointID ForeignKey(fileid)P_Property1 P_Property2 ...
表2中的所有条目都有一个外键列,该列引用中的条目Table1
。
现在,我想从Table2
其中具有特定值F_Property1
的引用文件中选择条目Table1
。
我尝试过一些天真的事情:
select * from Table2 where fileid=(select FileID from Table1 where F_Property1 > 1)
现在这实际上工作..种。它从中选择正确的文件ID,Table1
并Table2
使用该ID返回条目。但是它仅使用第一个返回的ID。我需要做的基本上是通过内部选择连接返回的ID,OR
以便它返回所有ID的数据。
我怎样才能做到这一点?我认为这是一种跨表查询,类似于此处的要求什么是跨表SQL查询的正确语法?但是这些答案没有解释它们的实际作用,因此我正在为任何实现而苦苦挣扎。他们正在使用JOIN
语句,但是当仅检查两个表中的匹配ID时,这不将表1和表2中的条目混合在一起吗?至少这就是我对此的理解http://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins
正如您可能已经从样式中注意到的那样,我一般来说对数据库的使用还很陌生,因此,如果不是所有人都清楚我想要的内容,请原谅我。请发表评论,如有必要,我会尝试改善问题。
该=
运营商比较彼此相争的单个值,所以假定子查询只返回一行。
要检查(列)值是否在一组值中,请使用IN:
SELECT *
FROM Table2
WHERE fileid IN (SELECT FileID
FROM Table1
WHERE F_Property1 > 1)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句