SELECT a.*, GROUP_CONCAT(b.name) FROM a, b WHERE b.ID IN (1,3) GROUP BY a.ID;
============================================================================
这句与SELECT a.*, GROUP_CONCAT(b.name) FROM a, b WHERE b.ID IN ('1,3') GROUP BY a.ID;
是不同的,b.ID IN ('1,3')相当与b.ID in (a.b),可以用find_in_set解决SELECT a.*, GROUP_CONCAT(b.name) FROM a, b WHERE find_in_set(b.ID,a.b) GROUP BY a.ID;:-)

解决方案 »

  1.   

    mysql> SELECT a.*, GROUP_CONCAT(b.name) FROM a, b WHERE find_in_set(b.ID,a.b) GR
    OUP BY a.ID;
    +----+------+----------------------+
    | ID | b    | GROUP_CONCAT(b.name) |
    +----+------+----------------------+
    |  1 | 1,3  | a,c                  |
    +----+------+----------------------+
    1 row in set (0.39 sec)测试通过。不过表内分别只有1、3条数据就用了0.39秒,这效率……