Create Hibernate For Joining Table - mysql

I have to join 2 tables. The column is want to join is email from candidate table and password from user table. How to do it. Can Someone Help me. candidate
table is Shown Below:
CREATE TABLE `candidate` (`candidate_id` bigint(12) NOT NULL,`user_id`int(11) DEFAULT NULL,`firstname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,`lastname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,`dob` date DEFAULT NULL,`gender` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,`email` varchar(100) COLLATE utf8_unicode_ci NOT NULL,`phone` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL, `address_id` int(11) DEFAULT NULL, `profile_title` varchar(120) COLLATE utf8_unicode_ci DEFAULT NULL, `profile_summary` varchar(10000) COLLATE utf8_unicode_ci DEFAULT NULL, `total_experience` int(11) DEFAULT NULL COMMENT 'year,month', `current_location` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL, `current_salary` double DEFAULT NULL, `expected_salary` double DEFAULT NULL, `status` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL, `percentage` int(45) DEFAULT NULL,`updated_on` timestamp NULL DEFAULT CURRENT_TIMESTAMP, `noticeperiod` int(11) DEFAULT NULL, `martialstatus` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL, `currentoffer` double DEFAULT NULL, `idproof` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL, `industry` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL,`functionalarea` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL, `functionalrole` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL, `resign` bit(1) DEFAULT NULL,`preferlocation` varchar(1000) COLLATE utf8_unicode_ci DEFAULT NULL,`type` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,`notice_period_update` timestamp NULL DEFAULT NULL `passport` bit(1) DEFAULT NULL,`gross_salary` double DEFAULT NULL,`profile_type` varchar(12) COLLATE utf8_unicode_ci DEFAULT NULL,`rrm_user_id` int(11) DEFAULT NULL, PRIMARY KEY (`candidate_id`), KEY `Candidate_Address_idx` (`address_id`),KEY `Can_user` (`user_id`),KEY `CandidateStatus_idx` (`status`),KEY `CandidatePercent_idx` (`percentage`),KEY `user_id_idx` (`rrm_user_id`),CONSTRAINT `Can_user` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT `Candidate_Address`FOREIGN KEY (`address_id`) REFERENCES `address` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `user_id` FOREIGN KEY (`rrm_user_id`) REFERENCES `user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
User is:
CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT,`username` varchar(255) COLLATE utf8_unicode_ci NOT NULL,`password` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,`first_name` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL, `last_name` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,`type` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,`active` bit(1) DEFAULT NULL,`deleted` bit(1) DEFAULT NULL,`timezone` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,`created_on` timestamp NULL DEFAULT NULL,`updated_on` timestamp NULL DEFAULT CURRENT_TIMESTAMP,`activationcode` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,`secure_key` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,PRIMARY KEY (`id`),UNIQUE KEY `username_UNIQUE` (`username`)) ENGINE=InnoDB AUTO_INCREMENT=1505 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

You need a very simple SQL query to do this:
SELECT
c.candidate_id,
c.user_id,
c.email,
u.password
FROM
candidate as c
JOIN user as u ON c.user_id = u.user_id
Working example:
http://sqlfiddle.com/#!9/0ba876/1
Try to learn some SQL before you try to progress in this field.
https://www.w3schools.com/sql/

Related

MySQL does not recognize possible_keys in join

I tried to query by join 2 tables giao_vien and lop_mon.
The following is my tables structure:
CREATE TABLE `lop_mon` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`key_index` varchar(250) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`khoi_key_index` varchar(250) DEFAULT NULL,
`lop_key_index` varchar(250) DEFAULT NULL,
`gv_key_index` varchar(250) DEFAULT NULL,
`mon_key_index` varchar(250) DEFAULT NULL,
`ma_so` varchar(50) DEFAULT NULL,
`ma_phong` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`nam_hoc` int(11) NOT NULL,
`ma_truong` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`ma_khoi` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`ma_lop` varchar(50) NOT NULL,
`ma_giao_vien` varchar(50) NOT NULL,
`ma_mon_hoc` varchar(50) DEFAULT NULL,
`hoc_ky` tinyint(4) NOT NULL,
`guid` varchar(250) DEFAULT NULL,
`processid_monhoc` int(11) DEFAULT NULL,
`processid_giaovien` int(11) DEFAULT NULL,
`processid_canbo` int(11) DEFAULT NULL,
`source_data` varchar(50) DEFAULT NULL,
`ten_gv_chat_ph` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`ma_giao_vien_bgd` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`ma_lop_bgd` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`ma_mon_hoc_bgd` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`gv_guid` char(36) DEFAULT NULL,
`truong_key_index` varchar(255) DEFAULT NULL,
`create_date` datetime DEFAULT NULL,
`updatedAt` datetime DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `key_UNIQUE` (`key_index`),
UNIQUE KEY `unique_lop_mon_gv_keyindex_hoc_ky` (`lop_key_index`,`gv_key_index`,`mon_key_index`,`hoc_ky`) USING BTREE,
KEY `lopmon_keyindex` (`mon_key_index`),
KEY `lopmon_idx_mamonhoc` (`ma_mon_hoc`),
KEY `idx_gv_key_index` (`gv_key_index`),
KEY `lopmon_idx_lop_key_index` (`lop_key_index`),
KEY `lopmon_idx_key_index` (`khoi_key_index`),
KEY `lopmon_idx_ma_truong` (`ma_truong`),
KEY `lopmon_idx_nam_hoc` (`nam_hoc`),
KEY `lopmon_idx_ma_khoi` (`ma_khoi`),
KEY `lopmon_idx_hoc_ky` (`hoc_ky`),
KEY `lopmon_idx_key_lop_mon` (`lop_key_index`,`mon_key_index`),
KEY `lopmon_idx_key_lop_gv` (`lop_key_index`,`gv_key_index`),
KEY `lopmon_idx_key_mon_gv` (`mon_key_index`,`gv_key_index`),
KEY `lopmon_idx_key_lop_mon_gv` (`lop_key_index`,`mon_key_index`,`gv_key_index`),
KEY `lopmon_idx_key_truong_lop_mon_gv` (`ma_truong`,`lop_key_index`,`mon_key_index`,`gv_key_index`),
KEY `lop_mon__index_gv_guid` (`gv_guid`),
KEY `lopmon_idx_truong_key_index` (`truong_key_index`)
) ENGINE=MyISAM AUTO_INCREMENT=23142297 DEFAULT CHARSET=latin1
My Query:
select * from giao_vien inner join lop_mon on lop_mon.gv_key_index = giao_vien.key_index
where giao_vien.key_index = 'shcm_2019_01645344018'
When I explain it:
MySQL does not recognize the key:
KEY `idx_gv_key_index` (`gv_key_index`)
I check another query:
SELECT * FROM enetviet.lop_mon where gv_key_index = 'shcm_2019_01645344018';
The key idx_gv_key_index is still work. I don't know what is the problem.

How to change collation for view table in mysql

When I run this query:
select b.email,
concat('[AAA]: Xin chao QK ', a.client_name, ' HD ',a.account_no, ' vua khoi tao') as subject,
replace( (select email_content from xxff_message where refid=1 and status='O'),'#LOAN_ID#', a.account_no) as message, -- cp init
a.loan_id
from interface.vw_loan_full a
left join interface.xxff_client b
on a.client_id=b.client_id
where 1=1
and a.status=100
and (a.loan_id, email) not in ( select loan_id, receiver from xxff_loan_message_sent where stage='INIT100_MSG_EMAIL')
and date(a.value_date) between DATE_ADD(CURDATE(), INTERVAL -30 day) and date(now());
And I get this error:
Err] 1270 - Illegal mix of collations (utf8_unicode_ci,IMPLICIT),
(utf8_unicode_ci,COERCIBLE), (utf8_general_ci,IMPLICIT) for operation
'replace'
When I research, this cause is different utf8_unicode_ci and utf8_general_ci. But I checked all table, database are using utf8_unicode_ci .
But view table vw_loan_full is utf8_general_ci. Please help me change collation of view table.
Because I run command:
ALTER TABLE vw_loan_full CONVERT TO CHARACTER SET utf8 COLLATE
utf8_unicode_ci;
And get Error:
[Err] 1347 - 'interface.vw_loan_full' is not BASE TABLE
My result from SHOW CREATE TABLE xxff_client:
CREATE TABLE xxff_client ( client_id bigint(20) NOT NULL,
client_name varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL,
national_id varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,
issue_date date DEFAULT NULL, issue_place varchar(120) COLLATE
utf8_unicode_ci DEFAULT NULL, Gender varchar(15) COLLATE
utf8_unicode_ci DEFAULT NULL, dob date DEFAULT NULL, phone
varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, email
varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL, address
varchar(250) COLLATE utf8_unicode_ci DEFAULT NULL, status
varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL, creation_date
date DEFAULT NULL, USER_ID varchar(20) COLLATE utf8_unicode_ci
DEFAULT NULL, company_name varchar(150) COLLATE utf8_unicode_ci
DEFAULT NULL, company_address varchar(255) COLLATE utf8_unicode_ci
DEFAULT NULL, title varchar(50) COLLATE utf8_unicode_ci DEFAULT
NULL, dept_name varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
join_date date DEFAULT NULL, salary_date int(11) DEFAULT NULL,
remain_of_laborcontract int(11) DEFAULT NULL, salary_recently
varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL, eco_userid
bigint(20) DEFAULT NULL, otp_count tinyint(20) DEFAULT '0',
PRIMARY KEY (client_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
COLLATE=utf8_unicode_ci ROW_FORMAT=DYNAMIC
My result from SHOW CREATE TABLE xxff_loan_message_sent:
CREATE TABLE xxff_loan_message_sent ( refid bigint(20) NOT NULL
AUTO_INCREMENT, loan_id int(11) NOT NULL, stage varchar(20)
COLLATE utf8_unicode_ci DEFAULT NULL, sent_status varchar(6)
COLLATE utf8_unicode_ci DEFAULT NULL, created_by varchar(15)
COLLATE utf8_unicode_ci DEFAULT NULL, created_date date DEFAULT
NULL, receiver varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (refid) ) ENGINE=InnoDB AUTO_INCREMENT=280 DEFAULT
CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=DYNAMIC
My result from SHOW CREATE TABLE vw_loan_full:
CREATE ALGORITHM=UNDEFINED DEFINER=root#% SQL SECURITY DEFINER
VIEW vw_loan_full AS select a.id AS loan_id,a.client_id AS
client_id,b.display_name AS client_name,b.account_no AS
cif_no,a.product_id AS product_id,c.short_name AS
product_name,a.currency_code AS
ccy_code,a.annual_nominal_interest_rate AS
rate,a.term_frequency AS term,a.approved_principal AS
approved_principal,a.principal_amount AS
disbursed_amount,a.principal_outstanding_derived AS
pos,a.loan_status_id AS status,a.submittedon_date AS
created_date,a.submittedon_userid AS
created_by,a.expected_disbursedon_date AS
value_date,a.maturedon_date AS
maturity_date,a.approvedon_date AS
approvedon_date,a.disbursedon_date AS
disbursedon_date,a.expected_maturedon_date AS
expected_maturedon_date,a.loanpurpose_cv_id AS
loan_purpose,a.account_no AS account_no from
((mifostenant-default.m_loan a left join
mifostenant-default.m_client b on((a.client_id = b.id)))
left join mifostenant-default.m_product_loan c
on((a.product_id = c.id)))
My result from SHOW CREATE TABLE vw_loan_full:
CREATE TABLE xxff_message ( refid bigint(20) NOT NULL
AUTO_INCREMENT, msg_type varchar(8) COLLATE utf8_unicode_ci
DEFAULT NULL, sms_content varchar(500) COLLATE utf8_unicode_ci
DEFAULT NULL, email_content varchar(2000) COLLATE utf8_unicode_ci
DEFAULT NULL, email_subject varchar(250) COLLATE utf8_unicode_ci
DEFAULT NULL, status varchar(4) COLLATE utf8_unicode_ci DEFAULT
NULL, created_by varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,
created_date datetime DEFAULT NULL, updated_by varchar(15)
COLLATE utf8_unicode_ci DEFAULT NULL, updated_date datetime
DEFAULT NULL, stage_code varchar(35) COLLATE utf8_unicode_ci
DEFAULT NULL, email_receiver varchar(120) COLLATE utf8_unicode_ci
DEFAULT NULL, PRIMARY KEY (refid) ) ENGINE=InnoDB
AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
ROW_FORMAT=DYNAMIC
How I can change collation for view table in MySQL? Thanks for your helpfull !!!
MySQL 5.5 in Windows

How to import a table that was deleted with foreign keys?

I have deleted a table from my server called 'companies' that has foreign keys and also has relationships with other tables. Now I'm trying to import the table again with a backup I download, but it throws an error of incorrectly formed foreign keys
I have tried to create just the table with 2 charts a name and an id, but it's not working it also throws the error of Foreign key constraint is incorrectly formed.
CREATE TABLE `companies` (
`id` int(10) UNSIGNED NOT NULL,
`company_name` varchar(191) COLLATE utf8_unicode_ci NOT NULL,
`company_email` varchar(191) COLLATE utf8_unicode_ci NOT NULL,
`company_phone` varchar(191) COLLATE utf8_unicode_ci NOT NULL,
`logo` varchar(191) COLLATE utf8_unicode_ci DEFAULT NULL,
`login_background` varchar(191) COLLATE utf8_unicode_ci DEFAULT NULL,
`address` text COLLATE utf8_unicode_ci NOT NULL,
`website` varchar(191) COLLATE utf8_unicode_ci DEFAULT NULL,
`currency_id` int(10) UNSIGNED DEFAULT NULL,
`package_id` int(10) UNSIGNED DEFAULT NULL,
`package_type` enum('monthly','annual') COLLATE utf8_unicode_ci NOT NULL
DEFAULT 'monthly',
`timezone` varchar(191) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'Asia/Kolkata',
`date_format` varchar(20) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'd-m-Y',
`time_format` varchar(20) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'h:i a',
`locale` varchar(191) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'en',
`latitude` decimal(10,8) NOT NULL DEFAULT 26.91243360,
`longitude` decimal(11,8) NOT NULL DEFAULT 75.78727090,
`leaves_start_from` enum('joining_date','year_start') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'joining_date',
`active_theme` enum('default','custom') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'default',
`status` enum('active','inactive','license_expired') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'active',
`last_updated_by` int(10) UNSIGNED DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`stripe_id` varchar(191) COLLATE utf8_unicode_ci DEFAULT NULL,
`card_brand` varchar(191) COLLATE utf8_unicode_ci DEFAULT NULL,
`card_last_four` varchar(191) COLLATE utf8_unicode_ci DEFAULT NULL,
`trial_ends_at` timestamp NULL DEFAULT NULL,
`licence_expire_on` date DEFAULT NULL
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Error Message:
(Error: 150 "Foreign key constraint is incorrectly formed")
First is to get all foreign keys of "Comapanies" table using this query.
Then drop all foreign keys
ALTER TABLE `companies`
DROP FOREIGN KEY `id_name_fk`;
Then execute your create table statement

Unrecognized data type - MYSQL

I created a database table in MySQL, but it would show up errors. Please help to solving this issue and constructive feedback is appreciated.
CREATE TABLE `bldsvs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`monday` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
`tuesday` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
`wednesday` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
`thursday` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
`friday` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
`saturday` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
`sunday` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
'positionID` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`created` datetime NOT NULL,
`modified` datetime NOT NULL,
`status` enum('1','0') COLLATE utf8_unicode_ci NOT NULL DEFAULT '1',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Laravel where method won't works correctly on my server but work right on my Mac

I have a weird problem, this line wont fetch any record on my server but works all right on my computer, mysql and php version are same, and when i cast id field to string it's work on server (Debian), but it is risky because i use where statement with id very much. this is the code:
$myAnswers=Questioner::where('id',$questioner_id)->first()->getLinkedAnsweres()->where("subject_id",Auth::user()->id);
and when i change it to this, it's work right (cast id to string):
$myAnswers=Questioner::where('id',$questioner_id)->first()->getLinkedAnsweres()->where("subject_id",(string)Auth::user()->id);
subject_id and user id are both unsigned_integer with same size.
How can i fix this problem? Should i overwrite where method? or is there any config which cast unsigned int to string in query?
thanks
PS: Tables structure:
users | CREATE TABLE `users` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`family` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`username` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`email` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`gender` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`age` int(11) DEFAULT NULL,
`password` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`default_password` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`access_level` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'subject',
`phone` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`comments` longtext COLLATE utf8_unicode_ci,
`project_limit` int(10) unsigned NOT NULL,
`questioner_limit` int(10) unsigned NOT NULL,
`created_by` int(10) unsigned DEFAULT NULL,
`remember_token` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `users_username_unique` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci |
answers | CREATE TABLE `answers` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`question_id` int(10) unsigned NOT NULL,
`selected_option` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`subject_id` int(10) unsigned NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci |