0
私は、2つの範囲間でデータを取得したい場所のユーザーの休暇レポートを取得しようとしています。また、葉の日付が選択した範囲にある場合もあります。 例 ここに私のデータベース 2017-06-13から2017-06-17までの範囲を選択し、2番目の行を選択し、2017-06-21から2017-06-21までの範囲を選択したとします。 25は、その後も、私は同じ結果をADVにおいて2つの範囲の間でデータベースからデータを取得しましたか?
(A)
(SELECT u.user_id, u.user_image, u.user_first_name, u.user_last_name, CONCAT(u.user_first_name, ' ', u.user_last_name) AS user_name,
u.user_email, p.driver_number, l.status, DATE_FORMAT(l.from_date, '%d-%m-%Y') as from_date, DATE_FORMAT(l.to_date, '%d-%m-%Y') as to_date
FROM (`bat_usermst` u)
JOIN `bat_leavemst` l ON `u`.`user_id` = `l`.`user_id`
JOIN `bat_profilemst` p ON `u`.`user_id` = `p`.`user_id`
WHERE `l`.`from_date` >= '" . $start . "' AND `l`.`from_date` <= '" . $end . "' AND
`l`.`status` = '1' AND `u`.`user_type` = 5 AND `u`.`user_status` = '1' AND `u`.`is_deleted` = '0'
ORDER BY `user_name`)
UNION
(SELECT u.user_id, u.user_image, u.user_first_name, u.user_last_name, CONCAT(u.user_first_name, ' ', u.user_last_name) AS user_name,
u.user_email, p.driver_number, l.status, DATE_FORMAT(l.from_date, '%d-%m-%Y') as from_date, DATE_FORMAT(l.to_date, '%d-%m-%Y') as to_date
FROM (`bat_usermst` u)
JOIN `bat_leavemst` l ON `u`.`user_id` = `l`.`user_id`
JOIN `bat_profilemst` p ON `u`.`user_id` = `p`.`user_id`
WHERE `l`.`to_date` >= '" . $start . "' AND `l`.`to_date` <= '" . $end . "' AND
`l`.`status` = '1' AND `u`.`user_type` = 5 AND `u`.`user_status` = '1' AND `u`.`is_deleted` = '0'
ORDER BY `user_name`)
";
(B)
$this->db->select("u.user_id, u.user_image, u.user_first_name, u.user_last_name, CONCAT(u.user_first_name,' ', u.user_last_name) AS user_name,u.user_email, p.driver_number,l.status,
DATE_FORMAT(l.from_date, '%d-%m-%Y') as from_date,
DATE_FORMAT(l.to_date, '%d-%m-%Y') as to_date", FALSE);
$this->db->from('usermst u');
$this->db->join('bat_leavemst l', 'u.user_id = l.user_id');
$this->db->join('profilemst p', 'u.user_id = p.user_id');
$this->db->where('l.from_date >=', "$start");
$this->db->where('l.to_date <=', "$end");
$this->db->where('l.status', '1');
$this->db->where(array('u.user_type' => DRIVER, 'u.user_status' => '1', 'u.is_deleted' => '0'));
$this->db->order_by('user_name');
$result = $this->db->get();
おかげを取得するために、2つの異なるクエリの下にしようとしている選択されなければなりませんance。
自分を支持を行うと、(a)に示すサンプルクエリの用語とあなたが取得し、(b)は、テキストベースのテーブルで画像を交換したい行が、私たちはそれを読むことができることにより、あなたの質問を明確にしてください。それはあなたの英語かもしれませんが、私はあなたの質問が何をしたいのか分かりません。 – alexis
あなたは組合をやったのですか?あなたは単純な 'OR'条件でそれを行うことができます。 – jagad89