如果重复,Php mysqli删除完整的行

时间:2015-03-31 16:25:40

标签: php mysqli

我之前从未遇到过查询问题,但我无法解决此问题。我有2个表,1个叫做items_sale,另一个是item_list。我的表单有一个下拉菜单,可以从item_list中获取所有项目。

我需要做的是阻止该下拉列表中已存在于items_sale列表中的任何项目+ user_id =当前用户的ID。

例如,我有第2项和第5项待售,这意味着第2项和第5项都不应显示在下拉菜单中。

我环顾四周,找到了添加DISTINCT和UNION的解决方案,但我似乎无法删除整行。例如,DISTINCT只删除了1个值并保留了另一个值。

items_sale: items_sale item_list: item_list

1 个答案:

答案 0 :(得分:2)

我要做的第一件事就是将用户销售的所有项目放入一个数组中,然后从项目表中拉出所有不在数组中的项目。

<?php
    $conn = new mysqli('localhost', 'my_user', 'my_password', 'my_db');

    $currentUser = '1234';

    $items = $conn->query("SELECT * FROM item_list WHERE item_ID NOT IN (SELECT item_id FROM items_sale WHERE user_id = '$currentUser')");

编辑:更改为子查询而不是两个单独的查询