[英]mysql join limit with two tables
我有两个这样的表->
Categories
-----------
id name
---------
1 --> a
2 --> b
3 --> c
Messages
------------
id catid message
---------------------------
1 --> 1 --> aa
2 --> 1 --> bb
3 --> 1 --> cc
4 --> 2 --> dd
5 --> 3 --> ee
6 --> 3 --> ff
i want to join the tables for get FIRST message from messages table,
我想要这样的查询结果->
-------------------------------
id name message
1 a aa
2 b dd
3 c ee
我找到一个密码
select * from categories c, items i
-> where i.categoryid = c.id
-> group by c.id;
但没有任何ORDER BY程序
SELECT c.*, i.*
FROM categories c
JOIN items i ON (i.categoryid = c.id)
LEFT OUTER JOIN items i2 ON (i2.categoryid = c.id
AND (i.message > i2.message OR i.message = i2.message AND i.id > i2.id))
WHERE i2.categoryid IS NULL
ORDER BY c.id;
由于MySQL在GROUP BY
查询上表现不佳,因此在MySQL上往往表现得更好。
如果您对第一个表进行分组,则MySql将始终从第二个表返回第一个记录。
SELECT a.id, a.name, b.message FROM Categories a, Messages b WHERE b.catid = a.id GROUP BY a.id ORDER BY a.id
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.