MySQL加入和返回行不存在于硬编码列表中

时间:2015-09-03 18:50:25

标签: mysql

我需要一些MySQL查询帮助。我有一个产品颜色ID列表,我想找出数据库中不存在哪一个。以下查询返回数据库中匹配的colorid。我想看看db中不存在哪种颜色。

select cs.imageid from colorids cs 
where cs.imageid in 
(
3333,
2222,
4444,
5555,
6666,
7777,
8888,
)

1 个答案:

答案 0 :(得分:2)

您可以通过这种方式对列表进行硬编码,然后使用LEFT JOIN:

SELECT list.colorid
FROM (
  SELECT 3333 colorid
  UNION ALL
  SELECT 2222
  UNION ALL
  SELECT 4444
) AS list LEFT JOIN colorids cs
ON list.colorid = cs.imageid
WHERE
  cs.imageid IS NULL