2017-03-05 20 views
-1

こんにちは、私の最初のQは、stackoverflowので、私はあなたと一緒に私は非常に私は簡単にそれを取るために新しいです。 そうですね、何をしようとしているのですか?私は5つのテーブルを持っています。関係はすでに に設定されています。ゲームのIDを使って関連するカテゴリとプラットフォームを表示しようとしています。プラットホームには、ゲームIDと猫IDが一緒にプラットフォームとゲームと同じである2つの他のテーブルがあり、ゲームテーブルにあるフィールドは次のとおりです。 id - >ゲームIDの場合 name - >ゲーム名の場合 詳細と画像。 とgame_cat: g_idとcat_id の場合は、名前とIDが で、プラットフォームにも同じカテゴリの表がthersです。5つの異なるテーブルから正確な値を選択する方法

SELECT games.*, 
    game_cat.*, 
    category.* 
FROM games, 
    game_cat, 
    category 
WHERE games.id='game_cat.g_id' 
AND game_cat.g_id='game_cat.cat_id' 
AND game_cat.cat_id='category.id' 

が、私はいくつかの研究を行ってきたと呼ばれるものは、SQLでそこ参加ですので、それはphpmyadminののSQLで動作しない:これらは私が enter image description here から選択しようとしていると私のSQLは私のテーブルです私はそれに精通していません。 助けていただければ幸いです。

+1

不快ではありませんが、あなたの質問は非常に読みにくいです - いくつかの基本的な句読点や書式(段落区切り、コードブロックなど) 。)助けに遠くに行くだろう。それが立てば、あなたの質問はほとんど理解できないので、あなたを助けることは非常に難しいです。 –

+0

これを出発点として見てください。https://www.tutorialspoint.com/mysql/mysql-using-joins.htm – Yolo

+0

https://dev.mysql.com/doc/refman/5.7/en/ join.html?将来の投稿については、http://meta.stackoverflow.com/questions/251361/how-do-i-format-my-code-blocksを参照してください。 – chris85

答えて

1

カラム名に一重引用符を使用しないでください(最終的にはbackticsを使用する必要がある場合) 常に一致するカラムがある場合(それ以外の場合は結合を残して)、コンパクトクエリのエイリアスを使用できます。 最後の2つのテーブル...関連する列名が正しいことを祈ってください)

SELECT g.*,gc.*,c.* , gp.*, p.* 
FROM games g 
INNER JOIN game_cat gc on g.id = gc.g_id 
INNER JOIN category c on gc.cat_id=c.id 
INNER JOIN game_platform gp on g.id = gp.g_id 
INNER JOIN platform p on gp.paltform_id=p.id 
+0

ありがとう – monderbcb

-1

テーブル間の外部キーの関係に基づいてテーブル間をジョインする必要があります(これが何であるかわからない場合は、それに目を通してください)。 (私は外部キーを表して何列かわからないので、これを構成する)は、このような何かを:

SELECT games.*, 
    game_cat.*, 
    category.* 
FROM games g 
    INNER JOIN game_cat gc on (g.game_id = gc.g_id) 
    INNER JOIN category c on (gc.cat_id = c.cat_id) 
WHERE games.id='game_cat.g_id' 
AND game_cat.g_id='game_cat.cat_id' 
AND game_cat.cat_id='category.id'; 

これはgamescategory間の多対多の関係の標準的な実装のように見える - ということを正しい?

+0

クエリはOPのクエリと全く同じ結果を返します – bksi

+0

@bksiはい、 –

+0

カテゴリIDを持つゲームのためのユニークな列を持つgame_catのテーブルがあるので、私は多くの関係に多くを持っていないので、それは繰り返すことはありません – monderbcb

関連する問題