Подзапрос MySQL возвращает больше чем одну строку

Я мог бы решить проблему сам (каким-то образом).

Я добавил контейнер div для всего содержимого после div с изображениями и сделал его opacity: hidden. Во время прокрутки контент фактически прокручивается вверх, но его не видно. Как только изображения меняются, я добавляю margin-top в контейнер содержимого со значением прокручиваемого расстояния (+ некоторый буфер) и удаляю класс opacity: hidden.

Вот JSFiddle

Однако, это не решение, описанное в вопросе, где контент должен быть видимым и «ждать» на своей позиции, но для моих обстоятельств, это приемлемый ответ. Но я не сделаю это принятым ответом на мой вопрос.

17
задан fragilewindows 26 October 2016 в 16:05
поделиться

3 ответа

Вы можете попробовать его без подзапроса с простой группой:

SELECT voterfile_county.Name, 
  voterfile_precienct.PREC_ID, 
  voterfile_precienct.Name, 
  count(voterfile_voter.ID)
FROM voterfile_county
JOIN voterfile_precienct 
  ON voterfile_precienct.County_ID = voterfile_County.ID
JOIN voterfile_household 
  ON voterfile_household.Precnum = voterfile_precienct.PREC_ID
JOIN voterfile_voter 
  ON voterfile_voter.House_ID = voterfile_household.ID 
GROUP BY voterfile_county.Name, 
  voterfile_precienct.PREC_ID, 
  voterfile_precienct.Name

Когда вы используете GROUP BY, любой столбец, по которому вы не группируете, должен иметь агрегатное предложение (например, SUM или COUNT.) Таким образом, в этом случае вы должны сгруппировать по названию округа, precienct.id и precient.name.

13
ответ дан 30 November 2019 в 10:02
поделиться

Попробуйте это

SELECT
voterfile_county.Name, voterfile_precienct.PREC_ID, 
voterfile_precienct.Name,
    (SELECT COUNT(voterfile_voter.ID) 
    FROM voterfile_voter JOIN voterfile_household
    WHERE voterfile_voter.House_ID = voterfile_household.ID
      AND voterfile_household.Precnum = voterfile_precienct.PREC_ID) as Voters
FROM voterfile_precienct JOIN voterfile_county 
ON voterfile_precienct.County_ID = voterfile_County.ID
3
ответ дан 30 November 2019 в 10:02
поделиться

Если вы получаете сообщение об ошибке: error no 1242 Подзапрос возвращает более одной строки, попробуйте поставить ANY перед вашим подзапросом. Например:

Этот запрос возвращает ошибку:

SELECT * FROM t1 WHERE column1 = (SELECT column1 FROM t2);

Это хороший запрос:

SELECT * FROM t1 WHERE column1 = ANY (SELECT column1 FROM t2);
60
ответ дан 30 November 2019 в 10:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: