Pregunta

Deseo actualizar la tabla de datos para aquellos que tengan una calificación Identificación del examen de más de 1,2 80. Intento de este

UPDATE data
SET column = 'value'
WHERE
(SELECT * FROM exams
WHERE (id = '1' AND score >= 80) AND (id = '2' AND score >= 80));

Me da 0 resultados. Pero debe tener pocos cientos resulta ninguna ayuda ??

Creo que el problema es el siguiente:

SELECT * FROM exams
WHERE (id = '1' AND score >= 80) AND (id = '2' AND score >= 80)

Se da 0 resultados. Cómo seleccionar aquellos que tengan una calificación más de 80 puntos, tanto para el examen 1 y 2 ??

¿Fue útil?

Solución

consulta no funcionará porque usted está pidiendo exámenes que tienen id = 1 y ID = 2.

Identificación del supuesto de que no puede tener dos valores, al mismo tiempo, que nunca arrojó ningún resultado.

Trate esto como la base de su actualización en su lugar: -

SELECT * FROM exams
WHERE score >= 80 AND id IN ( '1','2' )

Editado en base a un comentario: -

El usuario quiere únicas personas que puntuaron más del 80 por ambos exámenes. Suponiendo PersonaID es una clave para la persona que tomó el examen.

SELECT e1.personid FROM
(
   SELECT personid FROM exams  WHERE score >= 80 AND id = '1' 
) e1
INNER JOIN
(
   SELECT personid FROM exams  WHERE score >= 80 AND id = '2' 
) e2
ON
  e1.personid = e2.personid

Otros consejos

Creo que su instrucción de selección debe utilizar un OR:

SELECT * FROM exams
WHERE (id = '1' AND score >= 80) OR (id = '2' AND score >= 80)

Prueba esto:

SELECT * FROM exams
WHERE (id = '1' OR id = '2') AND score >=80

Debido a que no se puede tener id ='1' y id = '2' al mismo tiempo el número de valores devueltos en su caso es 0.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top