Php 选择distinct可在一个表上工作,但不能在另一个表上工作
我在一个数据库中有一堆表。我使用三个SQL进行测试,并创建了以下SQLPhp 选择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_用户表返回用户_昵称,并按预期工作 然
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:中工作。你能修改一下演示问题的示例数据吗?你能提供你的数据库模式吗?