Php mysql查询中连接数据重复后
我的问题是为什么它只返回4行而不是2行? 如果我需要使用distinct或group by进行查询,则在表中没有重新返回4的值???尝试以下查询:Php mysql查询中连接数据重复后,php,mysql,sql,Php,Mysql,Sql,我的问题是为什么它只返回4行而不是2行? 如果我需要使用distinct或group by进行查询,则在表中没有重新返回4的值???尝试以下查询: table :First .............................................................................. id | ros | table | column | stool | date | places| .................................
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 and@her.com 394924673464 6 fddsfds 2017-07-03 |
6 12 her her@and.com 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;
请尝试以下查询:
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 and@her.com 394924673464 6 fddsfds 2017-07-03 |
6 12 her her@and.com 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;
它返回4列,因为您的表具有重复的
站点id
使用此更改您的查询。这将只返回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;
它返回4列,因为您的表具有重复的
站点id
使用此更改您的查询。这将只返回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;
它返回4行,因为两个表中的所有站点id都是11。要使其成为两列,只需在sql语句中添加GROUPBY即可 就像:
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;
它返回4行,因为两个表中的所有站点id都是11。要使其成为两列,只需在sql语句中添加GROUPBY即可 就像:
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;
您的问题“为什么”的答案是:这是正常的,因为您正在加入
站点id
,并且第一个表中的每一行在第二个表中都有两个匹配的站点id
行,因此2*2=4
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;
当您将31从第一个表连接到site\u id
上的第二个表时,您将得到两行(31加5,31加6)
当您在site\u id
上将32从第一个表加入到第二个表时,您将得到两行(32加5,32加6)
您需要按照@Sonu Bamniya所说的将结果分组您的问题“为什么”的答案是:这是正常的,因为您在
site\u id
上加入,并且第一个表中的每一行在第二个表中都有两个匹配的site\u id
行,所以2*2=4
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;
当您将31从第一个表连接到site\u id
上的第二个表时,您将得到两行(31加5,31加6)
当您在site\u id
上将32从第一个表加入到第二个表时,您将得到两行(32加5,32加6)
您需要按照@Sonu Bamniya所说的那样对person上的结果进行分组您需要添加另一个连接条件来停止复制,但表中没有任何明显的内容可以满足此要求。您需要添加另一个连接条件来停止复制,但您的表格中没有明显的内容可以满足此要求。@ArushiWelcome@Arushi欢迎