1

liste_pieces と client_pieces という名前の 2 つのタブがあります。

1 つ目は約 1000 の多くの要素のリストを含み、2 つ目は最初の要素の一部を含みます。

実際には、2 番目のタブを最初のタブで埋めるクエリを実行しています。

また、2番目にない最初の要素をすべて表示したいと思います。

両方のタブにある要素のみを表示するジョイントパスを実行できると思いました。

実際、それは私が探しているものではありません。

私は今のところそのクエリを実行しました

      <table id="box-table-a" width="100%">
    <tr>
        <th scope="col" width="50%">LISTE DES PI&Egrave;CES</th>
        <th scope="col" width="50%">AJOUT ?</th>
    </tr>

<?php $sql="SELECT * FROM `liste_pieces`";
$result=mysql_query($sql) or die;$i=0;
while($data=mysql_fetch_assoc($result))

{?>
<tr>
    <td><?php echo $data['libelle'] ; ?></td>
    <td style="text-align:center" align="center">
  <p align="center">  <input type="hidden" name="piece[<?php echo $i ; ?>]" value="0" /><input type="checkbox" class="checkbox" value="1" name="piece[<?php echo ++$i ; ?>]" id="piece[<?php echo ++$i ; ?>]" /></p></td>

</tr>
<?php } ?>

しかし、これは最初のタブのすべての要素を表示します。2 番目のタブにある要素を削除する方法がよくわかりません。

liste_pices には、id_piece と呼ばれることを除いて、2 番目のタブと同じ列 ID があります。

私は少し迷っています。

処理方法がわかりません。

最大限の敬意を表します。

敬具。

SP。

4

2 に答える 2

1

このクエリでうまくいくはずです。はい、それはあなたが求めている方法による結合クエリです:

select
    a.col1,
    a.col2,
    b.col1 // etc
from
    liste_pieces a
        join client_pieces b
            on a.id=b.id_peice
where b.id_piece is null

これが私のデータベースの例です:

mysql> select id, brand from cars;
+----+-------+
| id | brand |
+----+-------+
|  1 |     2 |
|  2 |     1 |
|  3 |     3 |
|  4 |     4 |
|  5 |     2 |
|  6 |     5 |
|  7 |     1 |
|  8 |     2 |
|  9 |     2 |
| 10 |     5 |
| 11 |     2 |
+----+-------+
11 rows in set (0.00 sec)


mysql> select id, brand from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
|  6 | Holden |
+----+--------+
6 rows in set (0.00 sec)

select
    a.brand
from
    brands a
        left join cars b
            on a.id=b.brand
where
    b.brand is null

+--------+
| brand  |
+--------+
| Holden |
+--------+
1 row in set (0.00 sec)

また、私はまさにこの種の質問をカバーする非常に長い質問と回答を書きました。これは、結合がテーブルでどのように機能するか、データベース内の複数のテーブルから情報を取得する方法を明確にするのに役立つことを願っています!

于 2012-09-20T07:34:53.803 に答える
0

このようなクエリを使用します

"select * from liste_pieces where column_name not IN (select column_name from client_pieces)"

"select * from client_pieces where column_name not IN (select column_name from liste_pieces )"

これで問題が解決しますcolumn_name。同じデータ型の両方のテーブルに存在するはずです。

于 2012-09-20T07:32:15.823 に答える