我之前从未遇到过查询问题,但我无法解决此问题。我有2个表,1个叫做items_sale,另一个是item_list。我的表单有一个下拉菜单,可以从item_list中获取所有项目。
我需要做的是阻止该下拉列表中已存在于items_sale列表中的任何项目+ user_id =当前用户的ID。
例如,我有第2项和第5项待售,这意味着第2项和第5项都不应显示在下拉菜单中。
我环顾四周,找到了添加DISTINCT和UNION的解决方案,但我似乎无法删除整行。例如,DISTINCT只删除了1个值并保留了另一个值。
items_sale: item_list:
答案 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')");
编辑:更改为子查询而不是两个单独的查询