0

MySQL と PHP を使用して、ニュース更新システムを作成したいと考えています。しかし、結合ステートメントと PHP に問題があるため、機能させることができないため、ニュースの更新と添付されたすべてのコメントを表示できます (有効なユーザーがログインしている場合、その人は各コメントを個別に削除できます)。しかし、私が問題を抱えているのは JOIN ステートメントだけです。

これらのテーブルとDBスキーマがあります

  1. news_tbl (news_id、日付、ユーザー (users_tbl.username への fk)、見出し、本文、画像)
  2. users_tbl (ユーザー名、電子メール、パスワード、ユーザータイプ)
  3. comments_tbl (comments_id, name, comment, news_id(fk to news_id))

私はこれを試しました:

$sqlquery ="SELECT news_tbl.*, users_tbl.*, comments_tbl.*,
COUNT(comments_tbl.comments_id) AS comments_count
FROM news_tbl
LEFT JOIN users_tbl
ON news_tbl.user = users_tbl.username
LEFT JOIN comments_tbl
ON comments_tbl.news_id = news_tbl.news_id
GROUP BY news_tbl.news_id ";

しかし、私は1つのコメントしか表示できず、すべてのコメントが必要で、各コメントのIDを取得したいので、ユーザーは各コメントを個別に削除できます。また、コメントを書かないとニュースIDが取得できませんか?

4

1 に答える 1

0

これはおおむねあなたが望むものを取得するはずですが、常にクエリを共有し、達成しようとしているものを正確に指定する必要があります。

Select ut.user_id,nt.news_id,nt.headline, nt.body,ct.comments_id,
ct.comment,count(ct.comments_id) as total
from news_tbl nt
inner join users_tbl ut on ut.user_id=nt.user_id
left join comments_tbl ct on ct.news_id=nt.news_id
group by ut.user_id,nt.news_id

幸運を。

于 2012-12-15T17:47:09.590 に答える