我有一个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中测试了查询并获得了相同的结果。当我使用不同的数字时,查询中没有错误,只是一个空的结果集,但我可以在浏览部分中查看右边的行。我的桌子坏了吗?有没有人有这样的事情发生在他们身上?
答案 0 :(得分:2)
空结果集是空结果集。
由于它们都是 INNER JOINS,所以任何一个连接都可能是“无连接”(从而导致空结果集)。没有仔细检查数据就不可能多说。我会考虑将查询分解为部分以查看哪些部分“不起作用”。
快乐的编码。
来自mu的帖子评论的有用建议:
将JOIN更改为LEFT JOIN并在输出中查找意外的NULL。
答案 1 :(得分:0)
问题可能在于查询逻辑。要检查它,请提供表格说明和预期结果。找到错误的一个很好的实用方法是评论其他联接。 从
开始SELECT *
FROM users
WHERE users.uid='{$id}'
LIMIT 1
然后添加查找连接以切断记录