我有两个表,event
和performer
,每个表都有一个slug
列。除了slug
列之外,event
表还有col1
,col2
和col3
列,performer
表中有一列名为{ {1}}。
我需要的是一个以id
值作为输入的查询,并首先查看slug
表。如果找到匹配项,则返回event
表中的所有列。如果找不到匹配项,则会查看event
表并返回performer
。
实质上,它相当于以下两个查询:
id
如果第一个查询中没有结果,请执行以下操作:
select col1, col2, col3 from event where slug = ?
我理解返回列的数量应该是一致的,因此select id from performer where slug = ?
的值在第一种情况下可以为null,id
,col1
和{{1}的值在第二种情况下可以为null。我可以测试null,看看是哪种情况。
我宁愿在查询中没有条件 - 我觉得可以用单个查询完成,但无法弄清楚如何。
答案 0 :(得分:0)
您可以尝试IF EXISTS,这可以在一个查询中完成。我知道你说没有条件,但这是一个查询命令。
IF EXISTS(select col1, col2, col3 from event where slug = ?)
BEGIN
select col1, col2, col3 from event where slug = ?
END
ELSE
BEGIN
select id from performer where slug = ?
END
我希望这有帮助!