Mysql 高效的短SQL查询
我有张桌子叫“纸”Mysql 高效的短SQL查询,mysql,Mysql,我有张桌子叫“纸” |ID | Paper_Code | Subject_Code | | 0 | 2018/Eng/01| ENG | | 1 | 2018/Eng/02| ENG | | 2 | 2018/CS/01 | CS | | 3 | 2018/Sci/01| Sci | | 4 | 2018/Eng/03| ENG | 我希望结果是正确的 |ID | Paper_Code | Subjec
|ID | Paper_Code | Subject_Code |
| 0 | 2018/Eng/01| ENG |
| 1 | 2018/Eng/02| ENG |
| 2 | 2018/CS/01 | CS |
| 3 | 2018/Sci/01| Sci |
| 4 | 2018/Eng/03| ENG |
我希望结果是正确的
|ID | Paper_Code | Subject_Code |
| 4 | 2018/Eng/03| ENG |
| 2 | 2018/CS/01 | CS |
| 3 | 2018/Sci/01| Sci |
我试过了
$sql = "SELECT DISTINCT (MAX(Paper_Code)
FROM papers WHERE Subject_Code = (SELECT DISTINCT Subject_Code))";
我是sql新手,尝试了很多次,但都失败了。请参见下文添加答案时,您不需要发表评论,海报会自动通知。您应该解释您尝试实现的逻辑。他想要的是
MAX(纸质代码)
,而不是MAX(id)
上面的代码会让他得到他想要的数据集。我认为这只是巧合,它给出了相同的答案。@Barmar我不认为op知道他想要什么。他尝试的查询使用了MAX(纸质代码)
。我认为这很明显,他试图最大限度地利用每一个主题代码。
select a.* from yourtable a join (
select subject_code, max(id)id
from yourtable
group by subject_code) b
on a.subject_code=b.subject_code and a.id=b.id