Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何比较两个表中每行的2个值?_Php_Mysql_Sql - Fatal编程技术网

Php 如何比较两个表中每行的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

如何比较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 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子句。。