Php 选择distinct可在一个表上工作,但不能在另一个表上工作

Php 选择distinct可在一个表上工作,但不能在另一个表上工作,php,mysql,sql,join,pdo,Php,Mysql,Sql,Join,Pdo,我在一个数据库中有一堆表。我使用三个SQL进行测试,并创建了以下SQL SELECT DISTINCT bb_users.user_nickname FROM bb_users JOIN bucket_list ON bb_users.username = bucket_list.author WHERE bucket_list.status=(:s) ORDER BY bucket_list.author ASC LIMIT 0, 30 这将从bb_用户表返回用户_昵称,并按预期工作 然

我在一个数据库中有一堆表。我使用三个SQL进行测试,并创建了以下SQL

SELECT DISTINCT bb_users.user_nickname FROM bb_users 
JOIN bucket_list ON bb_users.username = bucket_list.author 
WHERE bucket_list.status=(:s) ORDER BY bucket_list.author ASC LIMIT 0, 30
这将从bb_用户表返回用户_昵称,并按预期工作

然后,我在一个名为music的表上使用以下命令

SELECT DISTINCT bb_users.user_nickname FROM bb_users 
JOIN music ON bb_users.username = music.author 
WHERE music.status=(:s) ORDER BY music.author ASC LIMIT 0, 30
我使用准备好的语句运行sql查询:

//$sql ->the sql statements from above
$prep=$conn->prepare($sql); 
$exec=$prep->execute(array(":s"=>"active"));  var_dump($exec);
while($fetch=$prep->fetch(PDO::FETCH_ASSOC)){ 
   //do stuff
}
音乐表不输出任何内容,使用php PDO,execute方法返回false

这两行代码都是动态创建的,所以我对其中一行如何工作和另一行如何不工作感到非常困惑


非常感谢您的帮助

将排序规则代码从utf8\u unicode\u ci更改为utf8\u general\u ci

@Svengali您可以在任何表达式周围加上括号,这不会改变其含义。是的,括号只是让我更容易阅读查询。我觉得很好。你确定有任何用户使用活动音乐吗?它在我的sqlfiddle:中工作。你能修改一下演示问题的示例数据吗?你能提供你的数据库模式吗?