2つの異なるテーブルのMySQLデータをリンクして表示するにはどうすればよいですか?

i0N77

「stats」と「users」という名前の2つのテーブルがあります

usersテーブルには、id、username、password、email(columns)などの一般的なユーザーデータがすべて含まれています
。statsテーブルには、id、attack、defense、ostats、gold、food(columns)があります。

これらの2つのテーブルのデータを並べて表示し、IDSを介してデータをリンクさせたいとします。たとえば、

 Rank   user_uid   ostats     attack    defense    gold 
   1    Test        10          5         5        100
   2    Test2       8           2         6        60
   3    Test3       6           5         1        40

ユーザー名はテーブル「users」からのもので、残りはテーブル「stats」からのもの

です。最初に、Username(user_id = 1)やostats、attack、defense、などの同じIDのデータをリンクして表示する方法を知りたいと思います。金、食品(id = 1)

次に、「ostats」の順に並べます(どのテーブルにも「rank」という名前の列はまだありません。全体的な統計情報を使用してランクを作成する方法がわかりません)

キレ

あなたは(未テスト)のようなことをすることができます

SELECT u.username, s.overall, s.attack, s.defense, s.gold 
FROM stats s JOIN users u on s.user_uid = u.id 
ORDER BY s.overall;

ランキングの可能な解決策:

set @row_number=0;
SELECT (@row_number:=@row_number+1) as rank, u.username, s.overall, s.attack, s.defense, s.gold 
FROM stats s JOIN users u on s.user_uid = u.id 
ORDER BY s.overall;

別の恐ろしい見た目の試み:

set @row_number = (select count(*) from users) + 1;
select (@row_number:=@row_number-1) as rank,  u.username, s.overall from 
stats s join users u on s.user_uid = u.id order by s.overall desc;
set @row_number = 0;

ここPHPコードでは、変数を設定するために2つのクエリとして実行してから、実際のランキングクエリを実行する必要があります。このように、これを実行すると、ランク変数は常に0に設定されます。少し単純化するために、異なるテーブル名と列名を使用していることに注意してください。特定のニーズに合わせて調整することを忘れないでください。

// connect to database
$conn = mysqli_connect("localhost", "user", "password", "database");
// this query will set a variable to 0.
$setSql = "SET @row_number = 0;";
// run the query. This will return a boolean - true or false, depending on whether or not the query ran successfully
$variableSet = mysqli_query($conn, $setSql);
// if the query ran successfully
if($variableSet){
    // setup the actual ranking query
    $statsSql = "select 
                     (@row_number:=@row_number+1) as rank,
                     u.id,
                     u.username,
                     s.overall
                 from
                     mstats s 
                 join 
                     musers u
                 on 
                     s.muser = u.id
                 order by 
                     s.overall desc;";
    $ranks = mysqli_query($conn, $statsSql);
    if(!$ranks){
        // dump error from rank query
        var_dump($conn->error); 
    } else {
        // dump results as associative array
        var_dump($ranks->fetch_all(MYSQLI_ASSOC));
    }
} else {
    // dump errors from setting variable
    var_dump($conn->error); 
}

私にとって、結果ダンプは次のようになります。

array (size=3)
  0 => 
    array (size=4)
      'rank' => string '1' (length=1)
      'id' => string '2' (length=1)
      'username' => string 'Bar' (length=3)
      'overall' => string '1000' (length=4)
  1 => 
    array (size=4)
      'rank' => string '2' (length=1)
      'id' => string '6' (length=1)
      'username' => string 'Tom' (length=3)
      'overall' => string '7' (length=1)
  2 => 
    array (size=4)
      'rank' => string '3' (length=1)
      'id' => string '1' (length=1)
      'username' => string 'Foo' (length=3)
      'overall' => string '3' (length=1)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

mysqlで単一のクエリを使用して2つのテーブルからデータを取得するにはどうすればよいですか?

分類Dev

PostgreSQLを使用して異なるデータベースの2つのテーブルを接続するにはどうすればよいですか?

分類Dev

Laravelのトランザクションという名前の1つのテーブルに表示されるように、各テーブルに4つの異なるデータを表示するにはどうすればよいですか?

分類Dev

異なるテーブルIDを使用して2つのHTMLテーブルを表示するにはどうすればよいですか?

分類Dev

MySQLのサブクエリを使用して2つのテーブルの混合結果を表示するにはどうすればよいですか?

分類Dev

2つ以上の異なるテーブルのすべてのデータを表示するにはどうすればよいですか?JOINを使用しようとしましたが、それでも理解できませんか?

分類Dev

mysql(LEFT JOIN)の2つの異なるテーブルのデータを接続するにはどうすればよいですか?

分類Dev

Codeigniterで2つの結合テーブルを使用してテーブルにデータを表示するにはどうすればよいですか

分類Dev

ワンクリックで2つのMySqlテーブルにデータを挿入するにはどうすればよいですか?

分類Dev

EF Coreを使用して、アプリケーションの3つの異なるテーブルのデータを表示するにはどうすればよいですか。

分類Dev

2番目のテーブルにいくつかの条件を適用してmysqlクエリを使用して2つのテーブルからデータをフェッチするにはどうすればよいですか?

分類Dev

PL SQLで表示するときに、selectクエリを使用して2つのテーブルのデータを1つのセルに連結して表示するにはどうすればよいですか。

分類Dev

2つの異なるテーブル間でデータをはるかに高速に比較するにはどうすればよいですか

分類Dev

selectクエリのテーブルから2つの異なるカウントを取得するにはどうすればよいですか

分類Dev

Angular 2テーブルコンポーネント間でデータを共有して、それぞれが異なるデータを持つことができるが、同じテーブルコンポーネントのみを使用するようにするにはどうすればよいですか?

分類Dev

clojureで長さが異なる2つのベクトルをインターリーブするにはどうすればよいですか?

分類Dev

SQL Serverの2つの異なるテーブルのセルのデータを比較するにはどうすればよいですか?

分類Dev

テーブルをクエリしてmySQLの2つのフィールドでグループ化するにはどうすればよいですか?

分類Dev

1つのクエリでさまざまなテーブルのデータを表示するにはどうすればよいですか?

分類Dev

PrestashopのバックオフィスSQLマネージャーを使用して2つの異なるテーブルからユーザーデータをエクスポートするにはどうすればよいですか?

分類Dev

orientDBの同じテーブルから2つの異なるエッジのデータを取得するにはどうすればよいですか?

分類Dev

1つのテーブルのmysqlカウント結果を異なる列に表示するにはどうすればよいですか?

分類Dev

2つの異なるSQLテーブルを比較して異なる値を取得するにはどうすればよいですか?

分類Dev

2つのテーブルを結合してから、2つの異なる列を選択するにはどうすればよいですか?

分類Dev

配列の2つのコレクションを比較して、異なるタブに表示するにはどうすればよいですか?

分類Dev

MatLab:異なるデータ型の2つの配列をテーブルに追加するにはどうすればよいですか?

分類Dev

VBAを使用して2つの異なるPCで2つの別々のExcelシートをリンクするにはどうすればよいですか?

分類Dev

そのようなリクエストについてテーブルをデザインするにはどうすればよいですか?

分類Dev

異なるデータベース(SQL Server)にある2つのテーブルを関連付けるにはどうすればよいですか?

Related 関連記事

  1. 1

    mysqlで単一のクエリを使用して2つのテーブルからデータを取得するにはどうすればよいですか?

  2. 2

    PostgreSQLを使用して異なるデータベースの2つのテーブルを接続するにはどうすればよいですか?

  3. 3

    Laravelのトランザクションという名前の1つのテーブルに表示されるように、各テーブルに4つの異なるデータを表示するにはどうすればよいですか?

  4. 4

    異なるテーブルIDを使用して2つのHTMLテーブルを表示するにはどうすればよいですか?

  5. 5

    MySQLのサブクエリを使用して2つのテーブルの混合結果を表示するにはどうすればよいですか?

  6. 6

    2つ以上の異なるテーブルのすべてのデータを表示するにはどうすればよいですか?JOINを使用しようとしましたが、それでも理解できませんか?

  7. 7

    mysql(LEFT JOIN)の2つの異なるテーブルのデータを接続するにはどうすればよいですか?

  8. 8

    Codeigniterで2つの結合テーブルを使用してテーブルにデータを表示するにはどうすればよいですか

  9. 9

    ワンクリックで2つのMySqlテーブルにデータを挿入するにはどうすればよいですか?

  10. 10

    EF Coreを使用して、アプリケーションの3つの異なるテーブルのデータを表示するにはどうすればよいですか。

  11. 11

    2番目のテーブルにいくつかの条件を適用してmysqlクエリを使用して2つのテーブルからデータをフェッチするにはどうすればよいですか?

  12. 12

    PL SQLで表示するときに、selectクエリを使用して2つのテーブルのデータを1つのセルに連結して表示するにはどうすればよいですか。

  13. 13

    2つの異なるテーブル間でデータをはるかに高速に比較するにはどうすればよいですか

  14. 14

    selectクエリのテーブルから2つの異なるカウントを取得するにはどうすればよいですか

  15. 15

    Angular 2テーブルコンポーネント間でデータを共有して、それぞれが異なるデータを持つことができるが、同じテーブルコンポーネントのみを使用するようにするにはどうすればよいですか?

  16. 16

    clojureで長さが異なる2つのベクトルをインターリーブするにはどうすればよいですか?

  17. 17

    SQL Serverの2つの異なるテーブルのセルのデータを比較するにはどうすればよいですか?

  18. 18

    テーブルをクエリしてmySQLの2つのフィールドでグループ化するにはどうすればよいですか?

  19. 19

    1つのクエリでさまざまなテーブルのデータを表示するにはどうすればよいですか?

  20. 20

    PrestashopのバックオフィスSQLマネージャーを使用して2つの異なるテーブルからユーザーデータをエクスポートするにはどうすればよいですか?

  21. 21

    orientDBの同じテーブルから2つの異なるエッジのデータを取得するにはどうすればよいですか?

  22. 22

    1つのテーブルのmysqlカウント結果を異なる列に表示するにはどうすればよいですか?

  23. 23

    2つの異なるSQLテーブルを比較して異なる値を取得するにはどうすればよいですか?

  24. 24

    2つのテーブルを結合してから、2つの異なる列を選択するにはどうすればよいですか?

  25. 25

    配列の2つのコレクションを比較して、異なるタブに表示するにはどうすればよいですか?

  26. 26

    MatLab:異なるデータ型の2つの配列をテーブルに追加するにはどうすればよいですか?

  27. 27

    VBAを使用して2つの異なるPCで2つの別々のExcelシートをリンクするにはどうすればよいですか?

  28. 28

    そのようなリクエストについてテーブルをデザインするにはどうすればよいですか?

  29. 29

    異なるデータベース(SQL Server)にある2つのテーブルを関連付けるにはどうすればよいですか?

ホットタグ

アーカイブ