I try to join the company and their details, as well as transactions, even if they do not exist.
I am counting transactions to determine how many users are sent to the course, if there are no transactions that I still want to join the company, and details, but the account will be 0, in my query below the training_company table is selected, but Training_details for any the reason is not selected:
SELECT training.*, count(distinct training_transactions.training_transaction_course) as completed_training_payments FROM training LEFT JOIN training_company ON training.course_main = training_company_id LEFT JOIN training_details ON training.course_main = training_details_company LEFT JOIN training_transactions ON training.course_user = training_transactions.training_transaction_user WHERE course_id = ? AND training_transactions.training_transaction_status = 'complete' AND training_transactions.training_transaction_payment_status = 'complete' AND course_enabled = 'enabled'
training_company:
CREATE TABLE IF NOT EXISTS `training_company` ( `training_company_id` int(11) NOT NULL, `training_company_name` varchar(100) NOT NULL, `training_company_user` int(11) NOT NULL, `training_company_enabled` varchar(50) NOT NULL DEFAULT 'enabled', `training_company_has_avatar` int(5) NOT NULL DEFAULT '0', `training_company_has_banner` int(5) NOT NULL DEFAULT '0' ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1;
training_details:
CREATE TABLE IF NOT EXISTS `training_details` ( `training_details_id` int(11) NOT NULL, `training_details_user` int(11) NOT NULL, `training_details_company` int(11) NOT NULL, `training_details_registration_number` varchar(10) NOT NULL, `training_details_type` varchar(100) NOT NULL, `training_details_name` varchar(100) NOT NULL, `training_details_street` varchar(100) NOT NULL, `training_details_town` varchar(100) NOT NULL, `training_details_county` varchar(100) NOT NULL, `training_details_postcode` varchar(100) NOT NULL, `training_details_country` varchar(100) NOT NULL, `training_details_company_name` varchar(100) NOT NULL, `training_details_company_street` varchar(100) NOT NULL, `training_details_company_town` varchar(100) NOT NULL, `training_details_company_county` varchar(100) NOT NULL, `training_details_company_postcode` varchar(100) NOT NULL, `training_details_company_country` varchar(100) NOT NULL, `training_details_total_employees` varchar(100) NOT NULL, `training_details_fax` varchar(100) NOT NULL, `training_details_landline` varchar(100) NOT NULL, `training_details_mobile` varchar(50) NOT NULL, `training_details_email` varchar(50) NOT NULL, `training_details_website` varchar(250) NOT NULL, `company_differs_address` int(11) NOT NULL DEFAULT '0' ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1; ,` training_details_company_county`, `training_details_company_postcode`,` training_details_company_country`, `training_details_total_employees`,` training_details_fax`, `training_details_landline`,` training_details_mobile`, `training_details_email`,` training_details_website`, `company_differs_address CREATE TABLE IF NOT EXISTS `training_details` ( `training_details_id` int(11) NOT NULL, `training_details_user` int(11) NOT NULL, `training_details_company` int(11) NOT NULL, `training_details_registration_number` varchar(10) NOT NULL, `training_details_type` varchar(100) NOT NULL, `training_details_name` varchar(100) NOT NULL, `training_details_street` varchar(100) NOT NULL, `training_details_town` varchar(100) NOT NULL, `training_details_county` varchar(100) NOT NULL, `training_details_postcode` varchar(100) NOT NULL, `training_details_country` varchar(100) NOT NULL, `training_details_company_name` varchar(100) NOT NULL, `training_details_company_street` varchar(100) NOT NULL, `training_details_company_town` varchar(100) NOT NULL, `training_details_company_county` varchar(100) NOT NULL, `training_details_company_postcode` varchar(100) NOT NULL, `training_details_company_country` varchar(100) NOT NULL, `training_details_total_employees` varchar(100) NOT NULL, `training_details_fax` varchar(100) NOT NULL, `training_details_landline` varchar(100) NOT NULL, `training_details_mobile` varchar(50) NOT NULL, `training_details_email` varchar(50) NOT NULL, `training_details_website` varchar(250) NOT NULL, `company_differs_address` int(11) NOT NULL DEFAULT '0' ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1;
Training:
CREATE TABLE IF NOT EXISTS `training` ( `course_id` int(11) NOT NULL, `course_user` int(11) NOT NULL, `course_main` int(11) NOT NULL, `course_type` varchar(255) NOT NULL, `course_name` varchar(255) NOT NULL, `course_description` text NOT NULL, `course_location` varchar(255) NOT NULL, `course_duration` varchar(255) NOT NULL, `course_fitness_type` varchar(255) NOT NULL, `course_instructor_name` varchar(255) NOT NULL, `course_price` int(15) NOT NULL, `course_start_date` date NOT NULL, `course_max_attendees` int(8) NOT NULL, `course_accommodation` varchar(255) NOT NULL, `course_accommodation_price` varchar(255) NOT NULL, `course_status` varchar(50) NOT NULL, `course_enabled` varchar(10) NOT NULL DEFAULT 'enabled', `course_location_name` varchar(255) NOT NULL, `course_location_street` varchar(255) NOT NULL, `course_location_town` varchar(255) NOT NULL, `course_location_county` varchar(255) NOT NULL, `course_location_postcode` varchar(255) NOT NULL, `course_location_country` varchar(255) NOT NULL, `course_certificate` varchar(250) NOT NULL, `course_certificate_valid` int(30) NOT NULL ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
So, how can I get my part in the work on the details, because at the moment he is not joining, although everything is consistent