我已经表A,B,和C. B和C是在同一数据库中,但是从A的不同的一个查看在连接表不匹配的条目
我有一个NUM柱和所述的辅助柱。我在B中有一个列和一个bcid列。bcid列是指C中的cid列。C也有一个asid列。
我想查询这样的,我得到一个所有条目,其中NUM和RN的条目相匹配,但援助和ASID条目是不同的。
到目前为止,我所能做的最好是连接表B和C等:
SELECT * FROM (B INNER JOIN C ON B.rob = C.cid)
我似乎无法然而别名上表中我的查询。我想这样做:
SELECT * FROM A, (SELECT * FROM (B INNER JOIN C ON B.rob = C.cid)) TMP
WHERE (A.num = TMP.rn AND A.aid <> TMP.asid)
但我遇到了错误。任何与此正确的方向指导将不胜感激。
EDIT 1:
如下我将代表一个表(假定一个表具有n列和m行:
Name: (col1, col2,..., coln) [(entry1, entry2,... entry n), (entry n+1, entry n+2, ... entry 2n), ..., (entry (m-1)*n, entry (m-1)*n + 1, ..., entry (m*n))]
样品输入:
A : (num, aid) [(1,2), (1,3), (1,4), (1,7)]
B : (rn, bcid) [(1,1), (1,2), (1,3), (1,4)]
C : (cid, asid) [(1,3), (2,4), (3,2), (4,6)]
正确的输出: [(1,7)]
输出我已经得到: [(1,2),(1,3),(1,4),(1,7)]
我知道为什么我虽然得到的输出:我假设A和之间的对应关系B和C的连接是1对1,但它们不是。
这不是我想要的。在查询中,我最终得到的行数多于B和C的连接数 – Steve
@Steve那么你想要什么? A中的所有行或B/C中的所有行匹配?要么可以通过子选择来完成。 – Vulcronos
我想要A中的所有行,其中A中的列号与B中的列rn匹配,并且A中的列帮助与C中的列帮助不匹配。但是,我需要将C中的cid与相应的抢夺列对齐B. – Steve