这个问题在这里已经有答案了:
sql仅选择列上具有最大值的行[重复](27个答案)
两年前关门了。
我有两个表,我想在一个属性上左键联接它们,但是我不想在第二个表中获取所有匹配的行,而是只选择某个列中编号最高(最新日期等)的条目。如何用sql表示这个结果?
下面是一个简单的例子来澄清我的问题。
Table `colors`
| color |
+-------+
| red |
| green |
| blue |
Table `inventory`
| color | value | shape |
+-------+-------+----------|
| red | 1 | square |
| red | 2 | circle |
| green | 7 | triangle |
Desired output:
| color | value | shape |
+-------+-------+----------|
| red | 2 | circle |
| green | 7 | triangle |
| blue | NULL | NULL |
我的表相当大,所以理想的解决方案是合理有效的(没有必要进行微调,只是尽量避免可能变得巨大的双连接。)
2条答案
按热度按时间zengzsys1#
http://sqlfiddle.com/#!9/0b75c/6号
http://sqlfiddle.com/#!9/0b75c/8号
a0zr77ik2#