从3个表中选择数据时,从2列中选择非空列

时间:2017-11-29 22:29:13

标签: php mysql

如果不是NULL,我想为一列(comment_graduate_idcomment_employer_id)选择数据。其中一个将为NULL,第二个将具有值。所以我想选择具有值的列来从其表中调用其数据:

$stmt = $con->prepare("
    SELECT 
    comments.comment_id,
    comments.comment_content,
    comments.comment_date_and_time,
    graduated.graduate_first_name,
    employers.employer_name
    FROM comments
    INNER JOIN graduated ON
    comments.comment_graduate_id = graduated.graduate_id 
    INNER JOIN employers ON 
    comments.comment_employer_id = employers.employer_id 
    WHERE
    comments.comment_job_offer_id = ? 
    ORDER BY comments.comment_id DESC");

1 个答案:

答案 0 :(得分:0)

有可用的功能,我更喜欢使用coalesce(),因为它不是特定于数据库的,它也可以处理2个以上的参数。

coalesce( comment_graduate_id, comment_employer_id )

如果不为null,这将返回comment_graduate_id,否则它将返回comment_employer_id,如果第二列也为null,则返回NULL。

MySQL的特定功能是IFNULL(),但我建议你改用coalesce。

相关问题