2016-09-08 18 views
0

現在、フィードを使用してユーザーが行ったステータスを表示するアンドロイドアプリを作成しています。同じデータベース内に3つのテーブルがあり、それぞれにプライマリまたはユニークなキー列のいずれかのユーザー名がありますが、各テーブルにはそのユーザーに関するさまざまな情報があります。例えば同じ名前で異なるテーブルにある3つのColomnsで同じ値を見つける

、最初のテーブル=== >> tbl_users:

  • ユーザ名
  • fnameは(最初の名前)
  • MNAME(ミドルネーム)
  • LNAME(姓)
  • など(リストが長い)

2番目の表=== >> tbl_userprofilepictur ES:

  • profilepictureID
  • ユーザ名
  • profilepicturepath

第三のテーブル=== >> tbl_user_feed:

  • postID(ステータスのユニークなID)
  • ユーザー名
  • 状況
  • imagepostpath

は、私はすべての3つのテーブル間でユーザ名を検索し、上のそれらに関連する関連情報を表示できるようにしたい

  • タイムスタンプ(ステータスでアップロードされた画像へのパス)彼らのポスト。たとえば、私はtbl_usersの名前と姓が必要になり、tbl_userprofilepicturesのprofilepicturepathと、tbl_user_feedのimagepostpathとtimestampのステータスが必要になります。

    私はこれを別々のPHPファイルまたはアプリケーション自体で行う必要がありますか? PS私はかなりPHPのnoobだから、仲間を助けるために自由に感じてください。

    あなたに力が入るようにしてください。

  • +1

    ヒントに参加することに良い習慣です: 'JOIN'が移動するための方法です。 –

    +0

    @GordonLinoffお返事ありがとう、もう少し詳しく説明できますか?私が言ったように、私はPHPに関して非常に新人です:3 – Brian

    +0

    データベースを正規化してください!これにより、はるかに簡単になり、多くの問題を防ぐことができます。 – XxGoliathusxX

    答えて

    0

    JOINを使用できます。

    JOINとは何ですか?

    SQL JOIN句は、2つ以上のテーブルの行をそれらの間の共通フィールドに基づいて結合するために使用されます。

    出典:w3schools.com Joins

    ここでは、私は与えられたあなたのテーブルの上にベースを作ったサンプルです。これらについては、共通のフィールドはusernameです。Alias (table_name as custom_name)を使用して

    SELECT CONCAT('a.fname', 'a.lname'), b.profilepictureID, c.status, c.imagepostpath, c.timestamp 
    FROM 
    tbl_users as a 
    LEFT JOIN tbl_userprofilepictures as b ON b.username = a.username 
    LEFT JOIN tbl_user_feed as c ON c.username = a.username 
    

    は、テーブルに

    関連する問題