2011-11-02 59 views
0

我有以下查询,MySQL只加入来自一个返回结果,加入

SELECT `candidates`.`candidate_id`, 
        `candidates`.`first_name`, 
        `candidates`.`surname`, 
        `candidates`.`DOB`, 
        `candidates`.`gender`, 
        `candidates`.`talent`, 
        `candidates`.`location`, 
        `candidates`.`availability`, 
        DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(`candidates`.`DOB`, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(`candidates`.`DOB`, '00-%m-%d')) as `age`, 
        `candidate_assets`.`url`, 
        `candidate_assets`.`asset_size` 
      FROM `candidates` 
      LEFT JOIN `candidate_assets` ON `candidate_assets`.`candidates_candidate_id` = `candidates`.`candidate_id` 
      WHERE `candidates`.`availability` = 'yes'"; 

查询当前从连接表返回多个行可以返回每加入只有一个结果?

+0

您可以将LIMIT 1子句添加到查询中 – Sparky

回答

0

这是可能的。尝试使用GROUP_CONCAT函数,例如 -

SELECT 
    c.`candidate_id`, 
    c.`first_name`, 
    c.`surname`, 
    c.`DOB`, 
    c.`gender`, 
    c.`talent`, 
    c.`location`, 
    c.`availability`, 
    DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(c.`DOB`, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(c.`DOB`, '00-%m-%d')) as `age`, 
    GROUP_CONCAT(ca.`url`) `url`, 
    GROUP_CONCAT(ca.`asset_size`) `asset_size` 
FROM `candidates` c 
LEFT JOIN `candidate_assets` ca ON ca.`candidates_candidate_id` = c.`candidate_id` 
WHERE c.`availability` = 'yes' 
GROUP BY c.candidate_id