使用IF语句和子查询进行mysql查询时出错

使用IF语句和子查询进行mysql查询时出错,mysql,sql,Mysql,Sql,我至少有一个复杂的查询,我用这个网站的例子来构建。我最后添加的是IF语句。如果没有IF语句,它将使用IF语句的真实部分。我希望你们能在这里帮助我。以下是查询: SELECT t.ID, t.start_time, t.end_time, t.start_date, t.end_date, t.balance, u1.first_name AS teacher_one_first_name, u1.last_name AS teacher_one_last_name,

我至少有一个复杂的查询,我用这个网站的例子来构建。我最后添加的是IF语句。如果没有IF语句,它将使用IF语句的真实部分。我希望你们能在这里帮助我。以下是查询:

SELECT 
    t.ID, t.start_time, t.end_time, t.start_date, t.end_date, t.balance, 
    u1.first_name AS teacher_one_first_name, u1.last_name AS teacher_one_last_name, 
    u2.first_name AS teacher_two_first_name, u2.last_name AS teacher_two_last_name,
    company.name, company.post_city, tag, lvl,
    IF(
        t.balance=1,
        (
            (SELECT count(user_ID)
                FROM company_lesson_block_student
                WHERE lead_follow=0 AND company_lesson_block_ID=t.ID) AS lead,
            (SELECT count(user_ID)
                FROM company_lesson_block_student
                WHERE lead_follow=1 AND company_lesson_block_ID=t.ID) AS follow
        ),
            (SELECT count(user_ID)
                FROM company_lesson_block_student
                WHERE company_lesson_block_ID=t.ID) AS total_student
    )
    FROM company_lesson_block AS t
    LEFT JOIN company_lvl ON company_lvl.ID = t.lvl_ID
    LEFT JOIN tag ON tag.ID = t.style_ID
    LEFT JOIN company ON company.ID=t.location_ID
    LEFT JOIN user AS u1 ON t.teacher_one_ID=u1.ID
    LEFT JOIN user AS u2 ON t.teacher_two_ID=u2.ID
    WHERE t.company_ID='1' AND location_ID='1' AND company_season_ID='1'
    ORDER BY start_date ASC
我收到的错误消息是:

您的SQL语法有错误;检查与您的MariaDB服务器版本对应的手册 要使用near'AS lead的正确语法,请在第10行选择countuser_ID FROM company_less'


任何帮助/提示都将被告知

您希望返回2列,但如果只能返回1列,则需要2个IF:

必须在IF的右括号后设置别名。
也许您必须重新考虑这个逻辑,因为在FALSE的情况下,相同的值会返回两次

谢谢,我不知道。我确实必须用这些新信息重新检查我的逻辑
........................
IF(
    t.balance=1,
        (SELECT count(user_ID)
            FROM company_lesson_block_student
            WHERE lead_follow=0 AND company_lesson_block_ID=t.ID),
        (SELECT count(user_ID)
            FROM company_lesson_block_student
            WHERE company_lesson_block_ID=t.ID)
) AS ????,
IF(
    t.balance=1,
       (SELECT count(user_ID)
            FROM company_lesson_block_student
            WHERE lead_follow=1 AND company_lesson_block_ID=t.ID),
        (SELECT count(user_ID)
            FROM company_lesson_block_student
            WHERE company_lesson_block_ID=t.ID)
) AS ????
........................