mysqlmysql-error-1052

Column 'date_start' in where clause is ambiguous


I wanna SELECT some date, but i have problem with this

SELECT DISTINCT `clients_agreements`.`date_start` , `buildings`.`id` ,
    `buildings`.`street` , `buildings`.`street_nr` ,
    `clients`.`building_id` , `clients_agreements`.`user_id`, `clients_agrees_conds`.`user_id`, `clients_agrees_perss`.`client_agreement_id`
FROM `clients_agreements`
LEFT JOIN `buildings`
    On `clients_agreements`.`user_id` = `buildings`.`id`
LEFT JOIN `clients`
    ON `clients`.`building_id` = `buildings`.`id`
LEFT JOIN `clients_agrees_conds`
    ON `clients_agreements`.`user_id` = `clients_agrees_conds`.`user_id`
LEFT JOIN `clients_agrees_perss`
   ON `clients_agrees_conds`.`user_id` = `clients_agrees_perss`.`user_id`
WHERE `date_start` = (CURRENT_DATE)

I get this:

error #1052 - Column 'date_start' in where clause is ambiguous


Solution

  • Where clause should contain alias for date_start to point to particular table:

            SELECT DISTINCT `clients_agreements`.`date_start` , `buildings`.`id` , `buildings`.`street` , `buildings`.`street_nr` , `clients`.`building_id` , `clients_agreements`.`user_id`, `clients_agrees_conds`.`user_id`, `clients_agrees_perss`.`client_agreement_id` 
            FROM `clients_agreements` 
            LEFT JOIN `buildings` On `clients_agreements`.`user_id` = `buildings`.`id` 
            LEFT JOIN `clients` ON `clients`.`building_id` = `buildings`.`id` 
            LEFT JOIN `clients_agrees_conds` ON `clients_agreements`.`user_id` = `clients_agrees_conds`.`user_id` 
            LEFT JOIN `clients_agrees_perss` ON `clients_agrees_conds`.`user_id` = `clients_agrees_perss`.`user_id` 
            WHERE `clients_agreements`.`date_start` = (CURRENT_DATE)