我有一个问题表(包含问题)和一个标记表(包含每个问题的标记(用整数表示))。
我想做的是得到一个问题列表,这些问题的标签与IN
运算符中的标签相同。
但是,如果1
存在,则查询当前返回所有问题,如果不存在,则返回0。它不返回标记整数与IN
运算符匹配的问题。
下面是一个SQLFiddle:http://sqlfiddle.com/#!2/c2ded3/2
似乎id = questions_tags.q_id
中的id
在某种程度上是模糊的。如果你做得更具体,它就会成功:
SELECT id FROM questions WHERE EXISTS (
SELECT 1 FROM questions_tags WHERE
questions.id = questions_tags.q_id AND
questions_tags.t_id IN (1)
);
可能我错了,但根据我对这个问题的理解,这个查询可能会有所帮助:-
SELECT questions.id,
questions_tags.id
FROM questions,
questions_tags
WHERE questions.id = questions_tags.id
AND questions_tags.t_id IN ( 1 );
希望这能有所帮助;