SQL Query with в Query возвращает более одного результата - PullRequest
0 голосов
/ 12 марта 2011

Я пытаюсь получить информацию из таблиц brews и recipes, основываясь на том, сколько последователей в таблице следуют, но я получаю ошибку sql, потому что я возвращаю более одного результата в моем запрос. Должен ли я разделить это на два запроса? Или есть обходной путь, который позволил бы мне проверить более одного b.uid в моем внешнем WHERE утверждении

SELECT 
  b.bid AS bid, b.name AS bname, 
  r.name AS recipe, b.status AS status, 
  r.rid, a.f_name, a.l_name, a.pic_loc, a.uid AS uid
FROM 
  recipes r, brews b, account a
WHERE 
  b.uid = (SELECT followed FROM follow 
  WHERE follower = '#cookie.id#') 
  AND b.rid = r.rid AND b.uid = a.uid 
GROUP BY b.bid
ORDER BY b.time DESC

Ответы [ 3 ]

3 голосов
/ 12 марта 2011

Просто используйте WHERE b.uid IN (SELECT followed...

0 голосов
/ 12 марта 2011

Предложение GROUP BY, вероятно, также вызывает проблемы.Вы должны иметь предложение GROUP BY в своем запросе, только если вы используете агрегатные функции (SUM (), AVG (), MIN (), MAX () и т. Д.) И вам нужно сгруппировать записи, которые вы суммируете,и т.д. в подгруппы.

0 голосов
/ 12 марта 2011

Чтобы вернуть несколько наборов результатов, вам нужно использовать cfstoredproc, но это не ваша проблема здесь.Либо поменяйте знак "=" на IN, в предложении where, либо измените свой выбор на присоединение.Ваша проблема - просто неправильный запрос, а не несколько результирующих наборов.

SELECT 
    b.bid AS bid, b.name AS bname, r.name AS recipe, 
    b.status AS status, r.rid, a.f_name, a.l_name, 
    a.pic_loc, a.uid AS uid
FROM 
    recipes AS r
    LEFT JOIN brews AS b
        ON b.rid = r.rid
    LEFT JOIN account AS a
        ON b.uid = a.uid
    LEFT JOIN follow AS f
        ON f.followed = b.uid
WHERE f.follower = <cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#cookie.id#" />
GROUP BY b.bid
ORDER BY b.time DESC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...