2017-11-20 7 views
-1

私は2つのテーブルemp_attendanceとemp_leaveを持っています。2つの表データを1列にする方法は?

emp_attendance:

id date_in 
200 2015-05-22 
200 2015-05-23 

がemp_leave:

id date_leave status 
200 2015-05-24 sick 

以下の出力を取得する方法は?

id  date   status 
200 2015-05-22 
200 2015-05-23 
200 2015-05-24  sick 

私は以下のSQLクエリを試しました。しかし、私は期待された結果を得ることができませんでした。

$query1 = "SELECT * FROM emp_attendance e INNER JOIN emp_leave a ON e.id=a.eid WHERE AND MONTH(e.date_in)='$monthSearch' AND YEAR(e.date_in)='$yearSearch'"; 

$employees = mysqli_query($connection,$query1); 
    while ($i = mysqli_fetch_array($employees)) { 
     echo "<tr>"; 
     echo "<td>".$i['date_in']."</td>"; 
     echo "<td>".$i['status']."</td>"; 
     echo "</tr>"; 
    } 

答えて

3

UNIONをmySQLで使用すると、同様の構造の2つのテーブルのデータを結合できます。

(SELECT `id`, `date_in` AS `date`, '' AS `status` FROM `emp_attendance`) 
UNION ALL 
(SELECT `id`, `date_leave` AS `date`, `status` FROM `emp_leave`) 
ORDER BY `date` 

次に、あなたはPHPのデータにアクセスすることができます

$employees = mysqli_query($connection,$query1); 
while ($i = mysqli_fetch_array($employees)) { 
    echo "<tr>"; 
    echo "<td>".$i['date']."</td>"; 
    echo "<td>".$i['status']."</td>"; 
    echo "</tr>"; 
} 
+0

あなたは、コードの先生を説明できますか? – lakshi

+0

ありがとうございました。 – lakshi

関連する問題