结合2个SQL“复杂”查询

时间:2012-11-16 04:25:44

标签: php mysql sql join

我不知道这些是defn的“复杂查询”,但对于像我这样的菜鸟看起来很复杂。

所以我在这里有一个查询,它将获得customer_id = 5的最新图表:

$query = "SELECT c.Chart_ID, c.Chart_Notes
          FROM tblchart AS c WHERE c.Customer_ID=5
          ORDER BY c.Last_Edited ASC LIMIT 1";

但我必须将它与另一个使用Chart_ID作为外键的表联系起来。如何使用tblcontenttblchart.Chart_ID=tblcontent.Chart_ID获取数据?我不能只把它添加为:

$query = "SELECT c.Chart_ID, c.Chart_Notes, d.Content_Desc, d.Content_Title
          FROM tblchart AS c, tblcontent AS d
          WHERE c.Customer_ID=5 AND c.Chart_ID=d.Chart_ID
          ORDER BY c.Last_Edited DESC LIMIT 1";
我可以吗?因为这会将搜索范围限制为只有一个......使用LIMIT 1只是为了获取最新信息,但对于后续查询(扩展查询),我期待从tblcontent中提取多个结果除了我发布的第一个查询。一个连接,也许,或联合,或一个复杂的查询,但如何?拜托,任何人都可以帮助我吗?感谢。

1 个答案:

答案 0 :(得分:1)

SELECT  a.Chart_ID, a.Chart_Notes, c.Content_Desc, c.Content_Title
FROM    tblChart a
        INNER JOIN
        (
            SELECT Chart_ID, MAX(Last_edited) maxEdited
            FROM tblChart
            GROUP BY Chart_ID
        ) b ON a.Chart_ID = b.Chart_ID AND
                a.Last_Edited = b.maxEdited
        INNER JOIN tblcontent c
            ON a.Chart_ID = c.Chart_ID
WHERE   a.Customer_ID=5