Aplicando filter usando SQL Join

Mi website es un sitio de preguntas y respuestas como stackoverflow.com. Cuando un usuario crea una pregunta, tiene la capacidad de labelrla. Más tarde, cuando necesite encontrar todas las preguntas que pertenecen a una categoría, puede usar la casilla de filter que acepta nombres de label. En function de las inputs de usuario, actualizaré la list de trabajos.

Mi layout de table es como abajo

Table: Questions id | QuestionTitle |Other details| ----------------------------------|-------------| 1 | Why is earth round? | 2 | How much is moon's diameter? | Table: Tags id | tagname ---------------- 1 | planets 2 | earth 3 | moon Table: AttachedTags id | question_id | tag_id ------------------------- 1 | 1 |2 2 | 1 |1 3 | 2 |3 

En PHP / Controller obtendré ID de label como input de usuario en el cuadro de filter.

¿Cuál es el mejor método para search todas esas preguntas bajo una label en particular?

He utilizado la siguiente consulta, pero está recuperando un trabajo dos veces, porque un trabajo puede tener más de una categoría.

 SELECT Questions.id, Questions.jobtitle, AttachedTags.tag_id FROM Questions INNER JOIN AttachedTags ON Questions.id = AttachedTags.question_id WHERE AttachedTags.tag_id IN (1,2) 

¿No es suficiente agregar un elemento distintivo para filtrar las duplicaciones y eliminar tag_id de la selección?

 SELECT DISTINCT Questions.id, Questions.jobtitle FROM Questions INNER JOIN AttachedTags ON Questions.id = AttachedTags.question_id WHERE AttachedTags.tag_id IN (1,2)