在查询中使用两个嵌套的select

时间:2015-07-31 10:08:34

标签: php sql

我使用的是phpmyadmin 127.0.0.1。

以下代码显示错误,但我找不到任何错误

SELECT pst.id AS post_id,cat.id AS category_id, title, contents, date_posted, categories, NAME 
FROM posts AS pst 
INNER JOIN categories cat ON cat.id = pst.cat_id 
ORDER BY pst.id DESC;

请帮助我找到错误。如果省略brakets()之外的部分,则会删除错误。

1 个答案:

答案 0 :(得分:0)

具体问题是您缺少子查询上的表别名。我认为使用in编写第二个条件会更容易:

select s.* 
from (select s.*
      from students1 s
      where ((PartCode = '$s1' OR PartCode = CONCAT('D', '$s1')) AND  
             '$s11' in (ElectiveSubject1, ElectiveSubject2, ElectiveSubject3)
      order by PartCode, AdmitCode, RollCode 
      limit ${'rr'.$rnn.'1b'}, ${'rr'.$rnn.'1'}
     ) s
LIMIT $qa1, $qa2;

下一步。你需要离开" mysql _"接口。这不再受支持。当您切换到" mysqli _"时,您可以参数化列值。这是一种更好的方法。

下一步。您有三列,它们的名称末尾似乎只有一个整数。这表明数据库设计不佳。通常,这意味着您的数据模型应该有一个联结表,每个学生和选修科目一行。