选择使用子查询中具有多个元素的位置

Wil*_*ild 2 t-sql sql-server

以下代码不起作用,但我正在使用的是我要完成的示例:

SELECT thing_id
FROM table_of_things
WHERE table_of_things.thing_color, table_of_things.thing_flavor IN 
                          ( SELECT good_color,good_flavor FROM good_things )
Run Code Online (Sandbox Code Playgroud)

编辑:从我的代码到某些人显然很明显.我试图使用子查询中的两个条件从table_of_things中获取things_id.

Abe*_*ler 6

您没有问过问题,但我怀疑您需要将查询更改为以下内容:

SELECT thing_id
FROM table_of_things
WHERE table_of_things.thing_color IN  ( SELECT good_color FROM good_things )
AND table_of_things.thing_flavor  IN  ( SELECT good_flavor FROM good_things )
Run Code Online (Sandbox Code Playgroud)

或者可能:

SELECT thing_id
FROM table_of_things as tot
INNER JOIN good_things as gt
ON tot.thing_color = gt.good_color AND tot.thing_flavor = gt.good_flavor
Run Code Online (Sandbox Code Playgroud)

in语句只能检查一个值,而不是像您尝试的那样检查两个值.