【发布时间】:2014-02-21 19:37:02
【问题描述】:
所以我有这个 SQLite 字符串
SELECT
a.anchor as [From Anchor],
c.anchor as [To Anchor]
FROM table1 a
JOIN table2 b ON b.toAnchor = a.anchor
JOIN table3 c ON c.anchor = b.fromAnchor
当我执行它时没有错误,但它返回一个空表。所有 3 个表中都有数据,并且数据确实与应有的位置匹配,但我什么也没得到。
表1
filename | farea | anchor
_________________________
file.doc N/A srs100
表2
type | filename | fromAnchor | toAnchor
_______________________________________
SRS N/A srs100 crs888
表3
filename | farea | anchor
_________________________
file.doc N/A crs888
我知道我可以只使用表 2,但我需要这样做才能找到 from 和 to 不匹配的区域。
如果我找不到这样的方法,那么我想找到一种方法,可以将 2 个表格组合起来,这样就可以了。
表1
type | filename | fromAnchor | toAnchor
_______________________________________
SRS N/A crs100 srs888
表2
type | filename | fromAnchor | toAnchor
_______________________________________
CRS N/A srs888 srd999
结果
crs | srs | srd
_______________________________________
crs888 srs888 srd999
如果需要,我可以提供更多信息。现在我想知道sql调用是否正确。
【问题讨论】:
-
SQL 看起来正确。仔细检查您的数据。您在那里遗漏了一些东西尝试将您的联接更改为左联接,看看哪些表的列返回空值,您就会知道不匹配的数据在哪里。
-
好吧,如果我翻转表格周围的连接语句已填满,但它会为每个 SRS 一遍又一遍地重复 CRS 部分。
-
table 1 anchor 和 table2 to anchor 有不同的值
-
像这样:
crs100 srs101 crs100 srs102 crs100 srs103 crs100 srs104 crs102 srs101 crs102 srs102 crs102 srs103 crs102 srs104 -
我怀疑你可以从 table1 开始。对于 table1,因为您使用具有别名的同一列来连接其他两个表的条件不会找到匹配项
标签: sql sqlite join inner-join