Php 如何比较两个表中每行的2个值?
如何比较2个表中的2个值 我在嵌套时使用了2,但是表逐个检查,第二个表中的结果来自第一个表中的每一行。 如何将结果打印一次 我想要这样的结果 这是我目前的代码Php 如何比较两个表中每行的2个值?,php,mysql,sql,Php,Mysql,Sql,如何比较2个表中的2个值 我在嵌套时使用了2,但是表逐个检查,第二个表中的结果来自第一个表中的每一行。 如何将结果打印一次 我想要这样的结果 这是我目前的代码 <?php $query1 = mysql_query("SELECT * FROM riwayat_training_detail AS s JOIN materi AS t JOIN riwayat_training AS u JOIN karyawn AS
<?php
$query1 = mysql_query("SELECT * FROM riwayat_training_detail AS s JOIN materi AS t JOIN riwayat_training AS u JOIN karyawn AS v WHERE v.id_karyawan = $id1 AND s.nik LIKE v.nik AND u.subject no LIKE t.subject no AND s.id_riwayat_training LIKE u.id_riwayat_training ");
$i=1;
while($row1 = mysql_fetch_array($query1))
{
$date = $row1['date'];
$subject1 = $row1['subject name'];
?>
<table class="table table-bordered">
<tr>
Training yang diikuti
<td class="table-bordered">No</td>
<td class="table-bordered">date</td>
<td class="table-bordered">subject date</td>
<td class="table-bordered">No SOP</td>
<td class="table-bordered">revision no</td>
<td class="table-bordered">Trainer</td>
<td class="table-bordered">institution</td>
</tr>
<tr>
<td class="table-bordered"><?php echo $i; ?></td>
<td class="table-bordered"><?php echo date("j/F/Y", strtotime($date)); ?></td>
<td class="table-bordered"><?php echo $subject1; ?></td>
<td class="table-bordered"><?php echo $row1['no_sop']; ?></td>
<td class="table-bordered"><?php echo $row1['revision_no']; ?></td>
<td class="table-bordered"><?php echo $row1['trainer']; ?></td>
<td class="table-bordered"><?php echo $row1['institution']; ?></td>
</tr>
</br>
<table class="table table-bordered">
<tr>
Training yang belum diikuti
<td class="table-bordered">No</td>
<td class="table-bordered">subject no</td>
<td class="table-bordered">subject date</td>
<td class="table-bordered">No SOP</td>
</tr>
<?php
$query2 = mysql_query("SELECT * FROM header_jabatan AS r JOIN materi AS q JOIN karyawn AS p WHERE q.subject no LIKE r.id_header AND r.id_jabatan LIKE p.id_jabatan AND p.id_karyawan = $id1 ORDER BY q.subject no ASC");
$x=1;
while($row2 = mysql_fetch_array($query2))
{
$subject2 = $row2['subject name'];
if (strcasecmp($materi1, $materi2) != 0)
{
?>
<tr>
<td class="table-bordered"><?php echo $i; ?></td>
<td class="table-bordered"><?php echo $row2['subject no'] ?></td>
<td class="table-bordered"><?php echo $subject22; ?></td>
<td class="table-bordered"><?php echo $row2['no_sop']; ?></td>
</tr>
<?php
}
$x++;
}
$i++;
}
?>
</table>
</table>
请帮帮我,我该怎么办
这是我关于同一主题的第二个问题,我真的需要帮助,我一直在想这个问题。你可以使用案例陈述查看这个链接,了解更多关于如何使用它的详细信息
这是你想要的东西吗
UPDATE table2 SET Status = "YES" WHERE SubjectName IN (SELECT SubjectName FROM table1)
还是希望它也使用修订版?您的图片只讨论SubjectName。在上面的结果图片中,最好使用左连接或右连接 请参见以下示例:
> CREATE TABLE table1 (subject VARCHAR(10), value INT);
> CREATE TABLE table2 (id INT, subject VARCHAR(10));
> INSERT INTO table1 VALUES ('XXX', 23),('ZZZ', 24);
> INSERT INTO table2 VALUES (1, 'XXX'),(2, 'YYY'), (3, 'ZZZ');
> SELECT * FROM table1;
+---------+-------+
| subject | value |
+---------+-------+
| XXX | 23 |
| ZZZ | 24 |
+---------+-------+
> SELECT * FROM table2;
+------+---------+
| id | subject |
+------+---------+
| 1 | XXX |
| 2 | YYY |
| 3 | ZZZ |
+------+---------+
> SELECT a.*, IF(b.value IS NULL, 'No', 'Yes') as status FROM table2 as a LEFT JOIN table1 as b ON b.subject = a.subject;
+------+---------+--------+
| id | subject | status |
+------+---------+--------+
| 1 | XXX | Yes |
| 3 | ZZZ | Yes |
| 2 | YYY | No |
+------+---------+--------+
请不要使用mysql函数查询如何运行。。。?语法完全被破坏了…谢谢你的回答。但是如果有新的输入,它将自动更新?@MochammadHelmi如果新的信息添加到表1中,则必须重新运行查询。如果您进行了更新并且只添加了一个新列,那么您可以使用我在回答中使用的查询,但是您可以向嵌套的SELECT添加WHERE子句,使其仅搜索已添加的特定信息。例如,如果将subject YYY插入到表1中,则只需执行***更新表2 SET Status=YES,其中SubjectName在表1中选择SubjectName,其中SubjectName=YYY***。或者,如果添加了多个更新,请重新运行更新。@MochammadHelmi如果要将其另存为存储过程,我相信每次插入内容时都可以运行更新。只需创建一个同时使用insert和update的存储过程。我不是100%确定,但我会试试。谢谢你的帮助,我想问一下,我有两个不同的查询,有这么多的联接表,怎么样?我想我不能在查询中使用IF子句。。