У меня есть таблица с вопросами, которые ссылаются на ту же таблицу для родительских вопросов.
При выполнении запроса SELECT для всех записей строки для столбца title
все эти вопросы отображаются в виде пары Запрос 1 / Результат 1 ниже.
Запрос 1:
SELECT t_child.title AS t_child_title,
t_child.question AS t_child_question,
t_child.parent_qid AS t_child_parent_qid,
t_child.language AS t_child_language,
t_parent.title AS t_parent_title,
t_parent.qid AS t_parent_qid,
t_parent.language as t_parent_language
FROM lime_questions AS t_child JOIN lime_questions AS t_parent
ON t_child.parent_qid = t_parent.qid AND t_child.language = t_parent.language
WHERE t_child.title = 'SacroCoccix';
Результат 1:
t_child_title | t_child_question | t_child_parent_qid | t_child_language | t_parent_title | t_parent_qid | t_parent_language
---------------+-----------------------+--------------------+------------------+----------------+--------------+-------------------
SacroCoccix | Sacro e/ou Cóccix | 1095 | pt-BR | lisCortAt | 1095 | pt-BR
SacroCoccix | Sacrum and/or coccyx | 1095 | en | lisCortAt | 1095 | en
SacroCoccix | Sacrum and/ or coccyx | 1078 | en | lisFxAt | 1078 | en
SacroCoccix | Sacro e/ou Cóccix | 1078 | pt-BR | lisFxAt | 1078 | pt-BR
SacroCoccix | Sacro e/ou Cóccix | 1056 | pt-BR | lisCortPr | 1056 | pt-BR
SacroCoccix | Sacrum and/or coccyx | 1056 | en | lisCortPr | 1056 | en
SacroCoccix | Sacro e/ou cóccix | 973 | pt-BR | lisFxPr | 973 | pt-BR
SacroCoccix | Sacrum and/or coccyx | 973 | en | lisFxPr | 973 | en
Добавление фильтра t_parent = 'lisFxPr'
кзапросить результаты ограничены заголовком родительского вопроса lisFxPr
, так как пара Запрос 2 / Результат 2 ниже.
Запрос 2:
SELECT t_child.title AS t_child_title,
t_child.question AS t_child_question,
t_child.parent_qid AS t_child_parent_qid,
t_child.language AS t_child_language,
t_parent.title AS t_parent_title,
t_parent.qid AS t_parent_qid,
t_parent.language as t_parent_language
FROM lime_questions AS t_child JOIN lime_questions AS t_parent
ON t_child.parent_qid = t_parent.qid AND t_child.language = t_parent.language
WHERE t_child.title = 'SacroCoccix' AND t_parent.title = 'lisFxPr';
Результат 2:
t_child_title | t_child_question | t_child_parent_qid | t_child_language | t_parent_title | t_parent_qid | t_parent_language
---------------+----------------------+--------------------+------------------+----------------+--------------+-------------------
SacroCoccix | Sacro e/ou cóccix | 973 | pt-BR | lisFxPr | 973 | pt-BR
SacroCoccix | Sacrum and/or coccyx | 973 | en | lisFxPr | 973 | en
Я хочу ОБНОВИТЬ только 2 строки, отображаемые в Результат 2 .
Я выполняю следующий запрос:
UPDATE lime_questions t_main SET title = 'SacrumCoccyx'
FROM lime_questions AS t_child
JOIN lime_questions AS t_parent
ON t_parent.qid = t_child.parent_qid AND t_parent.language = t_child.language
WHERE t_main.title = 'SacroCoccix' AND t_parent.title = 'lisFxPr';
Но этот запрос UDPATE обновляет все 8 записей, отображаемых в Результат 1 .
Что мне не хватает, пожалуйста?