如何有IN操作符工作有硬编码值匹配


Have accountId ={001,3456,78902,456}

我想使用IN子句和left join on操作从现有表中获得这些accountId的详细信息,我应该如何形成查询?作为DB端的新手,我无法将正确的部分放在一起:

select t1.col2, case when CASE WHEN t1.col3 is null THEN 'False' ELSE 'True' END as value
FROM table2 t2 left join table1 t1 on t2.col1=t1.col1
WHERE accountID IN (001,3456,78902,456); //The query is wrong because, I wanted to map using those accountID and get the data?

任何快速帮助形成查询将是伟大的

现有表有accountId作为其中一列。

猜测…

SELECT t2.col1, t1.col2, (t1.col3 IS NULL) AS value
FROM   table2 t2
LEFT   JOIN table1 t1 USING (col1)
WHERE  t2.accountid IN (1,3456,78902,456); -- t1 or t2 ???

我添加了t2.col1,或者你可能只得到NULL值的行。
使用更简单的(t1.col3 IS NULL) AS value,直接返回boolean TRUE/FALSE
同样使用更简单的USING来连接同名的列。

如果accountid也在table1中,则根本不需要join。

SELECT t1.col2, (t1.col3 IS NULL) AS value
FROM   table1
WHERE  t1.accountid IN (1,3456,78902,456);

最新更新