sql 查询以查找匹配属性

标签 sql oracle

我目前正在做一个类似易货系统的系统。像这样的情况。客户 (Jasmine) 需要输入“NAME”属性(她要查找的内容)并输入“SEEK”属性(她需要查找的内容)。为了获得结果,“SEEK”属性必须与其他客户的“Name”属性匹配,而其他客户的“SEEK”属性必须与 Jasmine 的“HAVE”属性匹配。

例如我有表项(已经在数据库中)

|ITEMSID|NAME   |SEEK     |USERID|
|A01    |printer|laptop   |A1    |
|A45    |laptop |headphone|A2    |
|AY3    |laptop |headphone|A3    |

例如 Jasmine 有 'Name' 属性耳机和 'Seek' 属性笔记本电脑,结果应该是这样的。结果应该列出所有可能性(它可能包含不止一行取决于,如果'NAME'和'SEEK'属性之间不匹配,它可能会得到零结果

|ITEMSID|NAME   |SEEK     |USERID|
|AY3    |laptop |headphone|A3    |
|A45    |laptop |headphone|A2    |

谢谢你帮助我。我正在使用 jsp 开发的系统 p/s: 我是 stackoverflow 的新用户。

根据评论编辑:

我已经尝试过使用 inner join 但查询结果不是特定于一个事务(意思是“Have”和“Seek”属性之间的结果匹配,但有所有匹配的行而不是选择正在输入的“有”属性):

SELECT a.NAME, a.seek,a.ITEMSID 
FROM items a 
JOIN items b ON a.NAME = b.seek AND b.NAME = a.seek

最佳答案

根据您尝试过的查询,如果我正确理解了您的请求(不确定我是否理解),那么您所缺少的只是用于输入的 WHERE 子句。

SELECT a.name, a.seek, a.ITEMSID 
FROM items a 
JOIN items b 
  ON a.name = b.seek 
  AND b.name = a.seek
WHERE a.name = 'input here'

关于sql 查询以查找匹配属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40391966/

相关文章:

java - 无法从数据源获取连接

oracle - dbms_output.put() 的缓冲方式是否与 dbms_output.put_line() 不同?

sql - 选择而不使用不同的关键字

Oracle 数据库链接

sql - 如何从连接表中选择数据作为表类型?

sql - 递归查询设计 - Oracle SQL

mysql - 如何使用选择查询从表中获取数据

java - HIbernate-MySQL5Dialect 想要删除外键而不是索引

sql - Oracle - 将数字 8 位数字转换为日期

sql - 在 Snowflake 中选择常量和 * ?