2012-03-17 17 views
0

同じデータベース内の2つのテーブルからデータを取得するMySQLクエリを作成する際に問題が発生しています。私は情報を表示するためにPHPを使用できるように、基本的に2つのテーブルを1つのテーブルに結合する方法を知らない。今は2つのクエリとPHPを使ってそれらに参加しています...私は本当に人名と得点を必要としています。1のMySQLクエリ2テーブル

tbl_scores 
---------- 
user_id 
points 

tbl_users 
--------- 
user_id 
name 

tbl_usersにはもっと多くのフィールドがありますが、それは私が思う唯一のものですか?詳細を知るには、私が見上げる必要があるものを手伝ってください。

+0

これは基本的な 'JOIN'動作である:' tbl_scores.user_idを選択tbl_scores.points、tbl_users左からtbl_users.nameがtbl_users.user_id = tbl_scores.user_id ON tbl_scoresをJOIN ' –

+1

[SQL結合に関するWikipediaの記事](http://en.wikipedia.org/wiki/Sql_join)は非常に便利です。ユーザーがスコア表に行がない場合は、LEFT JOINを使用しました。 –

答えて

1

あなたが使用することを探している単語を登録しようが... MySQLのの詳細については、すべてインターネット上で見つけることができます参加するが、私はここに1が見つかりました:http://mysqljoin.com/

次のコードは、テストされていないはずですがあなたのシナリオ...

SELECT 
    u.name, 
    s.points 
FROM 
    tbl_users AS u LEFT JOIN tbl_scores AS s ON u.user_id = s.user_id 
2
SELECT * FROM tbl_scores RIGHT JOIN tbl_users ON tbl_scores.user_id = tbl_users.user_id; 
0

使用Join、よりspecificaly Left Joinための仕事、それは右の表の一致(tbl_scores)何が存在しない場合でも、左表からすべての行(tbl_users)を返しますので、あなたGEようにもののないスコアを有するTのすべてのユーザー:

SELECT * FROM tbl_users LEFT JOIN tbl_scores ON 
    tbl_users.user_id = tbl_scores.user_id; 
+0

参加の方向は、必須のデータが必要なテーブルを指している限り重要ではありません。そのため、私の右の結合は、あなたの左の結合と同様に機能します。 – AlienWebguy