********* РАБОЧИЙ ЗАПРОС НИЖЕ *********
SELECT a.SubmissionId, a.FieldName, a.FieldValue
FROM jos_rsform_submission_values a
INNER JOIN
(SELECT SubmissionId, FieldName
FROM jos_rsform_submission_values b
WHERE FieldName IN ('Status1', 'Status2', 'Status3', 'Status4', 'Status5', 'Status6', 'Status7', 'Status8', 'Status9', 'Status10')
AND FieldValue = 'Pending'
AND FormId = 28
) AS test
ON a.SubmissionId = test.SubmissionId
WHERE a.FieldName = 'bayanno1' AND a.FormId = 28
************* END *************
Я написал следующий SQL-запрос:
SELECT SubmissionId,
(SELECT FieldValue
FROM jos_rsform_submission_values
WHERE FieldName IN (SELECT FieldName
FROM jos_rsform_submission_values
WHERE FieldName = 'bayanno1')) AS FieldValue
FROM jos_rsform_submission_values
WHERE FieldName IN (SELECT FieldName
FROM jos_rsform_submission_values
WHERE FieldName = 'Status1')
AND FieldValue = 'Pending'
AND FormId = 28
Мне просто интересно, может ли кто-нибудь помочь мне внайти причину, по которой он выдает следующую ошибку:
# 1242 - подзапрос возвращает более 1 строки
У меня есть два поля втот же столбец.Один из них "bayanno1
", а другой - "Status1
".
Каждый из них имеет значение при отправке формы на веб-сайте.Все представления связаны с «SubmissionId».Это означает, что, если у меня есть 500 представлений формы, он не заменит значение «Status1» из «SubmissionID» 150 на значение «bayanno1» из «SubmissionId» 120.
Например:
(FieldName) "bayanno1" = "12345" (FieldValue) ; 300 (SubmissionId) ;
(FieldName) "Status1" = "Pending" (FieldValue) ; 300 (SubmissionId) ;
Мне нужно заменить ЗНАЧЕНИЕ «Status1» на ЗНАЧЕНИЕ «bayanno1»; но только для целей запроса.Я не хочу заменять фактическое значение, только как визуальный запрос .
ТАК, что таблица с правильным SQL должна выглядеть так (я напишу PHP-запрос на своей веб-странице, чтобы извлечьинформация из базы данных и вставка в таблицу, однако эта таблица является лишь очень простым примером):
<table>
<tr>
<th>bayanno1</th>
<th>Status1</th>
</tr>
<tr>
<td>12345</td>
<td>12345</td>
</tr>
</table>