如果它不返回结果,是否可以在SQL中获取查询值?

时间:2016-03-01 21:03:26

标签: mysql sql

想象一下这个db表:

|id |value|
|1a |a    |
|2b |b    |
|3c |c    |

以下SQL:

select * from bar b where b.id in (1,2,3,4)

是否可以获得以下内容:

|id |value   |
|1a |a       |
|2b |b       |
|3c |c       |
|4d |<null>  |

基本上,我想知道哪个查询参数没有返回值。

2 个答案:

答案 0 :(得分:2)

您必须创建包含所有所需值的内联值。然后LEFT JOIN你的桌子:

select t1.id, t2.* 
from (
   SELECT 1 AS id UNION ALL SELECT 2 UNION ALL 
   SELECT 3 UNION ALL SELECT 4
) AS t1
LEFT JOIN bar AS t2 ON t1.id = t2.id

答案 1 :(得分:0)

如果您能够将ID插入到自己的数据库表中,则可以使用类似

的内容
SELECT t1.id, t2.value
FROM (SELECT id FROM guids) as t1
  LEFT JOIN table2 ON t1.id = t2.id