Jump to content
  • 0

Запрос MySQl


zwie
 Share

Question

Имеется таблица с новостями вида id,date,title,text. Имеется таблица с комментами вида commentid,newsid,name,text .id первой таблицы = newsid второй. Нужно сформировать результат id,date,title,text из 1 таблицы и количества комментов к данной записи. Догадываюсь, что количество комментов определяется как count(commentid) WHERE newsid=id. То есть чтобы получилась таблица вида

id | title | date | text | count |

Мне кажется, это реально реализовать одним запросом. На практике не выходит. Прошу помощи :lol:

Link to comment
Share on other sites

15 answers to this question

Recommended Posts

  • 0

@homm, в ранних версиях mysql (3.*) он легко валился от таких запросов, но с 4.1 ни разу на возникало подобных проблем, разработчики сделали все что могли и получили гибкий синтаксис.

@Emm, какой бы большой не был проект - могут возникнуть проблемы только в пределах одного запроса. Даже если у тебя запрос длиной в 2 страницы (а вероятно ты его нагенерил из php) то ошибка вероятнее появится в собственной опечатке чем в апострофе. а вот без синонимов трудно.

Link to comment
Share on other sites

  • 0
Просто нужно юзать префиксы чтобы не думать о мелочах, да и так удобнее мне кажется, а еще если проект огромный без префиксов сложно обойтитсь.

Юзать префиксы — это не думать о мелочах? Лучше уж делать все по строгому синтаксису и всегда использовать апострофы.

Link to comment
Share on other sites

  • 0

Вопрос в следующем: Имеется база mysql в связке с php, где реализована форма для ввода и отображения данных. Имеется столбец "стоимость" типа int.необходимо выполнить запрос на сумму в этом столбце,так же с выводом через php.

result = mysql_query "SELECT SUMСтоимость FROM tab",db;

row = mysql_fetch_rowresult;

echo row0;

выполнение данного скрипта приводит к ошибке: Warning: mysql_fetch_row: supplied argument is not a valid MySQL result resource in ....index.php on line 418

прошу помощи,кто знает в чем ошибка..?

_______

=== XRumer 5.0 Palladium RULEZ! ===

Link to comment
Share on other sites

  • 0

Есть база данных на MySQL. В ней таблица content, содержащая 3 поля: id - идентификатор, option - тоже идентификатор, только в виде текста, content - сам текст, который надо вывести. Примерно таблица выглядит так:

idoptioncontent

1indexпервый текст

2rulesвторой текст

...

10regдесятый текст

CODE result = mysql_querySELECT FROM content where option=.option.;

row = mysql_fetch_objectresult;

content = row - content;

echocontent;

... Где переменная option заранее определяется и равна одному из значений поля option

Запрос вроде правильно написан... как только не пробовал менять.. все равно не выводит значение поля content, согласно переменной option... Помогите, кто знает как работать с MySQL

Link to comment
Share on other sites

  • 0
select id, title, date, text, (select count(commentid) from comments where comments.newsid=news.id) as count_comments from news

простите что встреваю но может так тоже можно

select a.`id`,

a.`title`,

a.`date`,

a.`text`,

count(b.`commentid`) as count_comments

from news a , comments b

where a.`id`= b.`newsid`

group by b.`newsid`;

а по поводу имен полей я просто слышал что нужно стараться не использовать зарезервированные слова , говорят что потом и в самом коде неразбериха

Link to comment
Share on other sites

  • 0

Как-то задавал похожий вопрос на форуме. Ответ дали, но он не работает.

Чисто теоретически. Можете мне объяснить, как сделать, чтобы при запросе ИЗ таблицы данные не перезаписывались одна другой (последняя уничтожает предыдущую), а чтобы они создавали массив, которые после можно последовательно выводить в коде??? Не думаю, что не существует выхода. Но я никак не могу его найти. А так приходится после каждого вывода данных из таблицы занова создавать запрос к бд, и так примерно 25 раз в моем случае.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy