我想做以下工作:
WHERE table1.Id IN(
SELECT Id1, Id2
FROM table2
WHERE Id = 1234
)
但问题是子查询是一个行子查询并生成错误。
有没有办法将id1和id2从列转换为行,以便在比较中使用?
到目前为止,我找到的唯一方法是这样做,这并不理想:
WHERE
table1.Id = (
SELECT Id1
FROM table2
WHERE Id = 1234
) OR
table1.Id = (
SELECT Id2
FROM table2
WHERE Id = 1234
)
2条答案
按热度按时间mmvthczy1#
我认为这一点更清楚,并将有助于更好的表现:
检查小提琴http://sqlfiddle.com/#!9/31d26a/5号
注意它有一个
where
子句中提供要搜索的idffscu2ro2#
不知道是不是最好的,但我找到了以下解决办法:
不幸的是@lucumt answer不起作用,因为table1.id是数字,而contact函数创建了一个字符串。