我有这两个数据库:
用户数据库
_______________________
| ID | username |
-----------------------
| 1 | JOHN |
| 2 | JACKSYS |
| 3 | GATSBY |
| 4 | GERARD |
-----------------------
为每个用户销售数据库的产品。
_______________________
| ID | product |
-----------------------
| 1 | JACKET |
| 1 | SOCKS |
| 1 | TROUSERS |
| 2 | SHIRT |
-----------------------
我的查询应该如何,如果我只想从每个用户中选择第一个产品,考虑到选择此产品后,它将在以后删除,而另一个产品将作为每个用户的第一个位置。感谢您的帮助。
答案 0 :(得分:0)
我不建议像这样设置数据库。您应该让每个项目都具有唯一的ID以及用户ID。然后你可以像这样调用一个mysql_query
mysql_query("SELECT * FROM products WHERE id='$userid' AND productid='1'); //Where 1 would be the first item associated with the user
这也可以让您更轻松地删除项目。但是,如果您不想改变数据库,可以这样做。 只需循环遍历数据库并在找到具有匹配id的第一个项目时将其中断,然后使用相关数据。
$userid = ;//Set the user id however you would like
$sqlcon = mysql_query("SELECT * FROM products WHERE id='$userid'"));
$num_rows = mysql_num_rows($sqlcon);
for ($i=0; $i<$num_rows; $i++) {
$row = mysql_fetch_assoc($sqlcon);
if ($row['id'] == $userid) {
$productname = $row['username']; // I would recommend changing this column name to product not username
break;
}
}
if (!empty($productname)) {
echo $productname;
}
答案 1 :(得分:0)
要从每个用户获取第一个产品,您可以使用以下查询:
SELECT * FROM products JOIN users ON users.id = products.id GROUP BY users.id
此查询的结果:
______________________________________
| ID | product | username |
--------------------------------------
| 1 | JACKET | JOHN |
| 2 | SHIRT | JACKSYS |
--------------------------------------
我将products表中的用户名列重命名为product。