2017-07-09 9 views
-2

私は同じデータベースに2つのテーブルを持っています。一つはピクチャ用、もう一つはピクチャコメント用のテーブルです。どのように私は各特定の画像に属しているすべてのコメントを取得するSQLコマンドを書くことができますか?mysqlテーブルへの接続方法

+1

[join](https://www.w3schools.com/sql/sql_join.asp)でテーブルに参加できます。テーブル名とカラム名について十分な情報を提供していないため、誰も実際のSQL文を書くことはできません –

+0

ピクチャテーブルのカラムはpic_id、pic_owner、pic_insert_dateです。コメントの列名はpic_id、pic_commentor_name、pic_commentsです。 – tonclem

+0

あなたは共通ID、例えばpictureidやpost_idで 'join'文を使う必要があります。追加の詳細を指定しなかったので、一般的な構文は次のようになります: 'SELECT comment_text、comment_user FROM pictureTable JOIN commentTable ON pictureId' – Oasa

答えて

1

以下のコードが有効です。私が言ったように、これはかなり基本的な問題です、そして、私はあなたがこれに関連するいくつかの問題を感じています。試したコードを投稿し、質問を編集します。 WHERE節を使用してさらにフィルタリングすることができます。

SELECT picture_table.pic_owner, picture_table.pic_insert_date, picture_comment_table.pic_commentor_name, picture_comment_table.pic_comments FROM 
picture_table LEFT JOIN picture_comment_table 
ON picture_table.pic_id = picture_comment_table.pic_id 
+0

大丈夫です – tonclem

+0

私はmysql上でこのコードを実行したときこれは "#1052 - フィールドリストの 'pic_commentor_name'列があいまいです" – tonclem

+0

その場合、列で。私は同じことを編集しました。 – Oasa

1
$mysqli = new mysqli("example.com", "user", "password", "database"); 
$query = "SELECT picture_table.pic_id, picture_comment_table.* 
       FROM picture_table LEFT JOIN picture_comment_table 
       ON picture_table.pic_id = picture_comment_table.pic_id"; 
$stmt = $mysqli->prepare($query); 
!$stmt ? die('error') : ""; 
$stmt->execute(); 

いくつかの写真は内部結合の場合に選択される予定されていませんコメントなしがあるので、私は参加し、左使用。

画像に複数のコメント行がある場合、その画像には1行以上の結果が表示されることに注意してください。アプリケーションレイヤー(あなたのPHPコード) SQLステートメント。

+0

良い答え。私はPHPの部分とLEFT Joinについて忘れてしまった。 – Oasa

+0

ありがとう、それは完全に働いた。 – tonclem

+0

[ { "pic_id": "picture100"、 "pic_owner": "スタンレーキン"、 "pic_insert_date": "23-02-2017"、 [ { "pic_commentor_name": "キム・ラブ" 、 "pic_comments": "あなたは美しい見える" }、 { "pic_commentor_name": "ジョン・ドウ愛"、 "pic_comments": } ] } "マーベラスあなたがいる"、 { "pic_id": "picture101"、 "pic_owner": "Linkyはナム"、 "pic_insert_date": "21-04-2017"、 [ { "pic_commentor_name": "リラ愛"、 "pic_comments": "あなたはゴージャスに見える" }、 {"pic_commentor_name": "Bram Javan"、 "pic_comments": "写真をもっと愛し.....「 } ] } ]しかし、私はこの形式であなたは歓迎されている – tonclem

0

上記のように接合するのは良い解決策です。 しかし、プライマリキーとフォーキーキーを使用して2つのテーブルを関連付けることもできます。 ピクチャテーブルにプライマリキーフィールドを作成し、コメントテーブルにforiegnキーフィールドを作成します。

+0

私に例を示してください – tonclem

関連する問題