Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从下表中选择不同的行_Php_Mysql - Fatal编程技术网

Php 如何从下表中选择不同的行

Php 如何从下表中选择不同的行,php,mysql,Php,Mysql,我想从SentBy和SentTo的组合中选择最大ID 我的意思是我想把1-3和3-1组合在一起。。相似1-2和2-1也应分组在一起 问题是什么 用户: **ID | Name** 1 | A 2 | B 3 | C 4 | D 聊天 ID | Msg | SentBy (Users.ID) | SentTo (Users.ID) 1 | abc | 1 | 2 2 | def | 1 | 3 3 | ghi | 1 | 4 4 | jkl | 2 | 1 5 | mno

我想从SentBy和SentTo的组合中选择最大ID 我的意思是我想把1-3和3-1组合在一起。。相似1-2和2-1也应分组在一起

问题是什么

用户:

**ID | Name** 

1 | A 

2 | B

3 | C

4 | D
聊天

ID | Msg | SentBy (Users.ID) | SentTo (Users.ID)

1 | abc | 1 | 2 

2 | def | 1 | 3

3 | ghi | 1 | 4

4 | jkl | 2 | 1

5 | mno| 2 | 1

6 | pqr | 3 | 1

7 | stu | 3 | 1

8 | vwx| 4 | 1

9 | yz | 4 | 1

10| def | 1 | 3

12| jkl | 2 | 1
必需的

ID | Msg | SentBy (Users.ID) | SentTo (Users.ID)

3 | ghi | 1 | 4

10| def | 1 | 3

12| jkl | 2 | 1

我想你在找这个

select max(id) from chat as c1 
inner join chat as c2 on (c1.sent_by = c2.sent_to and c1.sent_to = c2_sent_by) 
group by c1.sent_by, c1.sent_to ;
使用
LEAST()
magest()

SELECT Chat.*
FROM Chat
JOIN (
      SELECT MAX(`ID`) m_value
      FROM Chat
      GROUP BY LEAST(`SentBy`, `SentTo`) , GREATEST(`SentBy`, `SentTo`)
     ) C
  ON Chat.`ID` = C.m_value
输出

| ID | Msg | SentBy | SentTo |
|----|-----|--------|--------|
|  9 |  yz |      4 |      1 |
| 10 | def |      1 |      3 |
| 12 | jkl |      2 |      1 |

你说的分组是什么意思?我的意思是1-3和3-1被视为一个组,你可以在上表中看到,我想获取每个1-2或2-11-3或3-11-4或4-1的最大ID,因为mno和jkl有sentBy SentTo 2-1,但mno有ID 5,jkl有ID 12请不要这么快,为什么你的解决方案会显示
(3,ghi)
,而不是
(9,yz)
?不确定这是否会起作用,因为有几个
(1,2)
和几个
(2,1)
是的,它不起作用..起作用了!