我在构建特定查询以选择记录时遇到问题。这是我试图实现的一个愚蠢的例子。特定查询选择表A中与表B行中定义的标准不匹配的所有行?
比方说,我有一个名为Criteria
表看起来是这样的:
ID Unit Product Part
== ======== ======= ========
1 'sports' 'bike' 'handle'
2 'sports' ' ' ' '
3 'furn' 'couch' ' '
etc.
而且我有一个名为Entries
表看起来是这样的:
ID Tuple
== =========================
1 'sports/bike/seat'
2 'sports/racket/frame'
3 'furn/desk/leg'
4 'furn/lamp/shade'
etc.
记录1 Criteria
建议任何“体育/自行车/手柄”元组都是合格的。在Criteria
中记录2,其中Product
和Part
包含空格,表示以'sports'开头的任何元组符合(“sports /%/%”)。记录3表明任何以'furn'和'couch'开头的元组符合(“furn/couch /%”)。我想选择不符合符合任何条件的所有记录。
在这种情况下,应该返回来自Entries
的记录3和4,因为它们不符合任何给定条件。
我是新来的SQL,所以我遇到了麻烦提出一个合适的查询。我的思维过程是沿着这些线路:
对于Criteria
每个记录,建立基于该Unit
,Product
和Part
字符串比较字符串。例如,对于记录1,字符串将是“运动/自行车/手柄”。对于记录2,字符串将是'sports /%/%',并且对于记录3:'furn/couch /%'。现在,选择Tuple
不等于任何这些字符串的所有记录。我无法将其转换为SQL条款,而这正是我需要您的帮助的地方。
对不起,但我会考虑重新设计表,而不是试图使它工作! – Parallelis
你为什么在真正的元组(行)内的列中存储元组?使3值3列! –
大声笑,我知道你们会吓坏了。当我第一次得到这个项目时,我也做了。元组被存储为字符串,因为它们来自其他地方。这是不幸的,令人讨厌的,但这一点不能改变。如果不提供详细信息,我很难解释:我不应该这样做:P – Dalal