Выберите элементы, которых нет в другой таблице, с дополнительным условием «Где»

0

tl: dr Эта команда не работает :(

SELECT * FROM homework WHERE crn =138628 AND WHERE id NOT IN (SELECT id FROM studentHw WHERE codigoAlumno="214521671");

Извините за испанские имена

Я хочу сравнить две таблицы, чтобы найти, какой идентификатор отсутствует в другой таблице. У меня две таблицы:

Домашнее задание Таблица: с кодом группы (crn) и идентификатором (укажите домашнюю работу)

+------------+------------+--------+-----+
| titulo     | fecha      | crn    | id  |
+------------+------------+--------+-----+
| Tarea 1    | 2018-03-14 | 138628 |  25 |
| Tarea 2    | 2018-03-14 | 138628 | 158 |
| Tarea 3    | 2018-03-14 | 138628 | 159 |
| Tarea 1    | 2018-03-15 | 125488 | 162 |
| Tarea 2    | 2018-03-15 | 125488 | 163 |
+------------+------------+--------+-----+



SELECT * FROM homework ;

Я хочу выбрать только элементы с crn равным 138628 и после сравнения с другой таблицей с именем studentHW (поставленная домашняя работа):

studentHW

+-----+--------------+---------+--------+
| id  | codigoAlumno | entrega | crn    |
+-----+--------------+---------+--------+
| 25  | 214521671    | si      | 138628 |
| 158 | 214521671    | si      | 138628 |
| 159 | 214521671    | si      | 138628 |
+-----+--------------+---------+--------+

SELECT * FROM studentHw;

Я хочу выбрать все строки в Домашнем задании, которые не находятся в studentHomework

Я проверяю stackoverflow для ответа, который нашел это...

Mysql: выберите строки из таблицы, которые не находятся в другом

И я пытаюсь выполнить следующую команду, но она не работает:

SELECT * FROM homework WHERE crn =138628 AND WHERE id NOT IN (SELECT id FROM studentHw WHERE codigoAlumno="214521671");

codigoalumno - идентификатор студента

Я получаю эту ошибку:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id NOT IN (SELECT id FROM studentHw)' at line 1
  • 1
    AND WHERE НЕ SQL.
Теги:

1 ответ

1
Лучший ответ

Ключевое слово WHERE следует использовать только один раз в запросе.

Правильный код:

SELECT * FROM homework WHERE crn =138628 AND id NOT IN (SELECT id FROM studentHw WHERE codigoAlumno="214521671");
  • 0
    Спасибо, я не знал, что я мог использовать только один раз, где
  • 0
    Это не вопрос CAN, это вопрос ДОЛЖЕН. ключевое слово WHERE указывает, что предложение WHERE запускается. После ключевого слова WHERE вы можете указать любое количество условий для строк, которые вы хотите выбрать, используя ключевые слова AND и OR. Я предлагаю следовать некоторым основным учебникам по SQL, прежде чем пытаться писать запросы. w3schools объясняет все просто и может быть хорошим началом для w3schools.com/sql/sql_intro.asp @Jorge

Ещё вопросы

Сообщество Overcoder
Наверх
Меню