我正在尝试搜索一个表中的所有条目,其中的列与匹配-
示例输出:
这是我试过的查询,它返回错误“查询中的错误(1242):子查询返回超过1行”
SELECT * FROM table1
WHERE
table1.Column1 = (
SELECT
SUBSTRING_INDEX(table2.Column1,'-',1)
FROM
table2
WHERE
table2.column1 LIKE '%\-%'
);
答案 0 :(得分:1)
您可以在IN
子句中使用WHERE
:
SELECT * FROM table1
WHERE
table1.Column1 IN (
SELECT
SUBSTRING_INDEX(table2.Column1,'-',1)
FROM
table2
WHERE
table2.column1 LIKE '%\-%'
);
答案 1 :(得分:1)
另一种方法是使用JOIN作为
SELECT * FROM table1 t1
inner join (
SELECT
SUBSTRING_INDEX(table2.Column1,'-',1) as str
FROM
table2
WHERE
table2.column1 LIKE '%\-%'
)t2
on
t1.column1 = t2.str
;
<强> DEMO 强>