我有一个有5列的表
linkid,orinodeno,orinodeno,ternodeno,terifindex
linkid是自动增量的。 orinifo,oriifindex是一个组合值和ternodeno,terifindex其他组合(orinodeno,oriifindex是起源值和ternodeno,terifindex终止值,即在两者之间有一个链接,例如就像连接链接之间的地图两个点)所以我的表包含a->b
值(即a是orinodeno,oriifindex和b的组合是ternodeno,terifindex的组合)和b-> a值。所以我必须只选择a->b
个值而不是b->a
。还发送我的表格图像。 My Table
答案 0 :(得分:0)
在sql数据库中没有映射定义,忘了它。检查任何database normalization tutorial。那么你不应该对select语句有任何问题。
答案 1 :(得分:0)
请明确您的要求。如果您无法用语言解释,请提供示例输入和您的预期输出。
从您提供的表格图像的链接和描述,看起来您期望以下:
当前表中的数据:
------------------------------------------------------------------
|linkid | orinodenumber | oriifindex | ternodenumber | terifindex|
------------------------------------------------------------------
|305 | 261 | 2 | 309 | 2 |
|306 | 309 | 2 | 261 | 2 |
|307 | 257 | 10 | 310 | 10 |
|308 | 310 | 10 | 257 | 10 |
|309 | 257 | 11 | 310 | 11 |
------------------------------------------------------------------
预期产出:
------------------------------------------------------------------
|linkid | orinodenumber | oriifindex | ternodenumber | terifindex|
------------------------------------------------------------------
|305 | 261 | 2 | 309 | 2 |
|307 | 257 | 10 | 310 | 10 |
------------------------------------------------------------------
如果是这种情况,以下查询可能会对您有所帮助(假设表名为link_table):
SELECT *
FROM link_table o
WHERE EXISTS (SELECT linkid
FROM link_table i
WHERE o.orinodenumber = i.ternodenumber
AND o.oriifindex = i.terifindex
AND o.linkid < i.linkid);