2017-07-18 5 views
1
table :First 
.............................................................................. 
id | ros | table | column | stool | date | places| 
.............................................................................. 
1 12 5 6 a 2017-07-17 goa | 
2 12 5 6 b 2017-07-17 delhi| 
.............................................................................. 


table :second 

.......................................................................... 
id | ros | name | email | phone | stos|address |date | 
.................................................................................................... 
5  12 and [email protected] 394924673464 6 fddsfds 2017-07-03 | 
6  12 her  [email protected] 84838593894  6 fdafdfd 2017-07-04 | 
.................................................................................................... 


Query like I am Using: 
SELECT `p`.* FROM `first` `p` LEFT JOIN `second` as `st` ON `st`.`ros`=`p`.`ros` ORDER BY `id` DESC LIMIT 10; 

私の質問は、2つではなく4つの行を返すのはなぜですか? テーブルを持たずにその4つの値を再設定する必要がありますか?mysqlクエリの結合後のデータ

+0

言ったように、あなたはグループに人の結果を必要とします重複を停止するために別の結合条件を追加することはできますが、この要件を満たすためにテーブル内の何も明らかではありません。 –

答えて

2

は、この文字列で検索してください:

SELECT p.* FROM first as p LEFT JOIN second as st ON st.site_id=p.site_id group by p.id ORDER BY p.id DESC LIMIT 10; 
+0

Thanx working .... – Arushi

2

あなたのテーブルがsite_idを複製しているので、それが4列を返します。

これを使用してクエリを変更します。これにより、2行だけが返されます。

SELECT `p`.* FROM `first` `p` LEFT JOIN `second` as `st` ON `st`.`site_id`=`p`.`site_id` GROUP BY p.id ORDER BY `id` DESC LIMIT 10; 
+0

Thanx working .... – Arushi

+0

@Arushiようこそ – Tomas

1

両方のテーブルのsite_idがすべて11であるため、4行が返されます。2つの列にするには、単純にGroup ByをSQLステートメントに追加します。

だけのよう:

SELECT `p`.* FROM `first` `p` LEFT JOIN `second` as `st` ON 
`st`.`site_id`=`p`.`site_id` GROUP BY `p`.`id` ORDER BY `id` DESC LIMIT 10; 
+0

Thanx working .... – Arushi

0

あなたの質問「なぜ」に対する答え:あなたはsite_idに参加しているので、これは正常であり、あなたの最初のテーブルのすべての行は、その第二のテーブルに2つの一致site_id's行を持っていますあなたはsite_id上の第二のテーブルに最初のテーブルから31に参加すると2 * 2 = 4

#first table 
+-----+---------+ 
| id | site_id | 
+-----+---------+ 
| 31 | 11 | 
+-----+---------+ 
| 32 | 11 | 
+-----+---------+ 
# second table 
+-----+---------+ 
| id | site_id | 
+-----+---------+ 
| 5 | 11 | 
+-----+---------+ 
| 6 | 11 | 
+-----+---------+ 

あなたが取得する2行(31 with 5, and 31 with 6)

そして、あなたはあなたが2行(32 with 5, and 32with 6)

を取得しますsite_id上の第2のテーブルに最初のテーブルから32に参加するとき@Sonu Bamniyaはあなたが必要になるだろう