У меня 3 таблицы: «новости», «комментарии» и «руб». Мне нужно получить все данные из «новостей», получить «название» от «руб» и подсчитать количество комментариев для каждой новости.Как я могу получить данные из 3 таблиц?
Теперь я не могу получить «титул» от «руб». Приведенный ниже код работает:
SELECT n.id,n.header,n.text, COUNT(c.news_id) AS comments
FROM news n
LEFT JOIN comments c ON n.id = c.news_id
GROUP BY n.id
ORDER by n.id
LIMIT 30
Но мне нужно что-то подобное, и этот код не работает (вызов функции члена fetch_array() на не-объект):
SELECT n.id,n.header,n.text,r.title COUNT(c.news_id) AS comments
FROM news n,rub r
LEFT JOIN comments c ON n.id = c.new_id AND r.news_id=n.id
GROUP BY n.id ORDER by n.id
LIMIT 30
Как почини это?
Вы пропускаете запятую ',' до 'функции COUNT' в вашей второй заявление. Мы не можем видеть ваш PHP-код, но я предполагаю, что вы не проверяете ошибки базы данных до получения результатов. – halfer
И другие опечатки. То, что вы делаете неправильно, - это то, что написал halfter: вы даже не спрашиваете базу данных о конкретной ошибке. Ты летел слепой. Вы должны как база данных для ошибки. Также см. Много дубликатов этой ошибки: https://stackoverflow.com/search?q=Call+to+a+member+function+fetch_array%28%29+on+a+non-object – hakre
@Narendra, сокращение «Я» должен иметь в себе апостроф ';-)' – halfer