2016-04-22 10 views
1

これは私のクエリのように見えますが、その結果は二重になります。私はSQLの初心者です。私のJOINがなぜダブル結果を表示していますか?

SELECT * FROM tbl_projects p, tbl_issues i WHERE p.admin_id = 3 
+0

'DISTINCT'のキーワードで試してみてください。 –

+4

あなたは 'join'条件が必要です。単純なルール:*決して* FROM句でカンマを使用しないでください。 *常に*明示的な 'JOIN'構文を使用します。 –

答えて

3

結合条件なしで古いスタイルで結合しているので、デカルト積が得られます。明示的なjoin構文を使用してください:

SELECT * -- It is recommended to explicitly select the attributes you need 
FROM  tbl_projects p 
JOIN  tbl_issues i -- I assumed inner join 
     ON p.id = i.project_id -- You'll have to figure out the conditions yourself 
WHERE p.admin_id = 3 
+0

私は 'ON p.admin_id = i.admin_id'と思っています:-) – Alex

+0

@Alexそうは思いません。私は' ON p.id = i.project_id'のようなものを期待しています。ポイントを置くのは分からないので、推測するとどんなポイントが役立つでしょうか。 OP:Pのままにしておいてください(回答はまだ編集済み) – HoneyBadger

0

これは、クエリのJOINではなく、あなたがテーブル「tbl_issues」を使用していない任意の場所に

+1

これは、ANSI-92構文より前の結合クエリです。 OPは 'tbl_issues'を使用しています。なぜなら、彼は' * ' – HoneyBadger

関連する問題