MYSQL:查询只使用一个值?

时间:2011-09-15 05:15:41

标签: mysql phpmyadmin

我有一个mysql查询,如下所示:

$query = "SELECT * FROM users
          JOIN signup ON users.uid = signup.uid
          JOIN jobs ON users.category_id = jobs.id
          JOIN lclasses ON users.class = lclasses.class_id
          JOIN degrees ON users.degree_id = degrees.degree_id
          JOIN trades ON users.trade_id = trades.trade_id
          JOIN tradestatuses ON users.trade_status = tradestatuses.status_id
          WHERE users.uid='{$id}' LIMIT 1";

如果$ id = 8,那么我的查询会正确返回。如果我尝试在我的数据库中的任何其他id,我得到一个空的结果集。

我在phpMyAdmin中测试了查询并获得了相同的结果。当我使用不同的数字时,查询中没有错误,只是一个空的结果集,但我可以在浏览部分中查看右边的行。我的桌子坏了吗?有没有人有这样的事情发生在他们身上?

2 个答案:

答案 0 :(得分:2)

空结果集是空结果集。

由于它们都是 INNER JOINS,所以任何一个连接都可能是“无连接”(从而导致空结果集)。没有仔细检查数据就不可能多说。我会考虑将查询分解为部分以查看哪些部分“不起作用”。

快乐的编码。


来自mu的帖子评论的有用建议:

  
    

将JOIN更改为LEFT JOIN并在输出中查找意外的NULL。

  

答案 1 :(得分:0)

问题可能在于查询逻辑。要检查它,请提供表格说明和预期结果。找到错误的一个很好的实用方法是评论其他联接。 从

开始
SELECT * 
FROM users
WHERE users.uid='{$id}' 
LIMIT 1

然后添加查找连接以切断记录