我知道这听起来很混乱,所以这里有详细的解释:
在表格中我有以下内容:customer_id,agent_id,brief_is,added_by
客户ID是客户的ID
代理商ID是服务代理商
brief_is是一个descritpion
added_by包含添加它的客户或添加它的代理的ID。
现在我可以通过查询added_by获取客户ID来获得结果,但现在我还要添加一个排序功能,该功能将显示所有结果,其中added_by是客户的,但是由agent_id添加。
我是否需要为added_for设置另一个字段,或者是否有另一种显示这些结果的方法。
查询示例:
/* Get data. */
$sql="SELECT brief_is, customer_id, agent_id, added_by FROM the_brief
WHERE dcustomer_id = '$id'";
$result=mysql_query($sql);
$query = mysql_query($sql) or die ("Error: ".mysql_error());
if ($result == "")
{
echo "";
}
echo "";
$rows = mysql_num_rows($result);
if($rows == 0)
{
print("");
}
elseif($rows > 0)
{
while($row = mysql_fetch_array($query))
{
$cust = $row['customer_id'];
$agent = $row['agent_id'];
$brief = $row['brief_is'];
print("");
}
}
答案 0 :(得分:1)
下面的查询将返回由代理添加的特定客户的所有行:
SELECT customer_id, agent_id, brief_is, added_by
WHERE customer_id=<CUSTOMERID>
AND added_by IN (SELECT agent_id FROM agents)
答案 1 :(得分:1)
如果我理解正确,您希望通过将结果限制(不排序)到代理而不是客户添加the_brief
条目的结果来改进查询。
如果是这种情况,那么您只需在查询中添加额外的验证:agent_id=added_by
现在您的查询将如下所示:
SELECT brief_is, customer_id, agent_id, added_by
FROM the_brief
WHERE customer_id = '$id'
AND agent_id = added_by
修改强>:
你的评论引导我看下面的代码。告诉我,如果它是正确的:
SELECT brief_is, customer_id, agent_id, added_by
FROM the_brief
WHERE customer_id = '$id'
AND agent_id != customer_id
您也可以使用<>
代替!=
答案 2 :(得分:0)
目前还不是很清楚,听起来你要求同样的事情:
SELECT brief_is, customer_id, agent_id, added_by FROM the_brief
WHERE agent_id= '$id'";
你的意思是什么?如果你必须保留两种信息:
然后你必须提供更多信息。
如果客户或代理商仅为自己添加简报,则您不需要其他字段。
答案 3 :(得分:0)
找到它。我需要做的就是使用&lt;&gt;因为不等于customer_id而且会给出agent_id