从另一个表的另一列中选择带有关键字的列

时间:2019-12-19 09:38:26

标签: sql sql-server

我需要有关可能很简单的SQL问题的帮助。 SQL非常新,因此不确定如何解决此问题。 我的问题是我试图选择一个columnA,其中该列中的数据包含来自tableB中另一个columnB的关键字。数据的示例如下。

tableA, columnA : {'This apple is red', 'This ball is round', 'This chair is metal'}
tableB, columnB : {'red', 'round'}

现在我正在想类似这样的查询

SELECT columnA FROM tableA
WHERE columnA LIKE '%' + (SELECT columnB FROM tableB) + '%'

因此,显然该方法将无效,因为子查询返回的值超过1。我正在尝试查看其他一些要使用的功能,例如CURSOR,但我无法弄清楚。非常感谢您的帮助,谢谢。

2 个答案:

答案 0 :(得分:1)

改为使用EXISTS

SELECT columnA FROM tableA A
WHERE EXISTS (SELECT 1 FROM tableB B where A.columnA LIKE '%' + B.columnB + '%') 

答案 1 :(得分:1)

您可以尝试以下方法:

select * from tableA A
JOIN tableB B on A.columnA  like '%' + B.columnB +'%'