gpt4 book ai didi

mysql - 使用不同时如何限制值

转载 作者:行者123 更新时间:2023-11-29 03:01:50 25 4
gpt4 key购买 nike

PHP

  SELECT DISTINCT bk.title AS Title, bk.year AS Year, aut.authorname AS Author, cat.category AS Category
FROM book bk

JOIN book_category bk_cat
ON bk_cat.book_id = bk.bookid

JOIN categories cat
ON cat.id = bk_cat.category_id

JOIN books_authors bk_aut
ON bk_aut.book_id = bk.bookid

JOIN authors aut
ON aut.id = bk_aut.author_id

ORDER BY bk.title ASC

enter image description here enter image description here

我的数据库正在回显以下数据,您可以看到,如果这本书有多个类别,它会多次打印出来。谁能从我的 PHP 代码中告诉我如何使它与类别列区分开来。谢谢。

最佳答案

仅在您想要的列中获得不同数据的最简单方法是使用 GROUP BY 子句。默认情况下,它会根据列的值对行进行分组,只显示不同的值,因此,如果你想分组并只显示不同的标题和类别,你应该将查询编写为:

  SELECT bk.title AS Title, bk.year AS Year, aut.authorname AS Author, cat.category AS Category
FROM book bk

JOIN book_category bk_cat
ON bk_cat.book_id = bk.bookid

JOIN categories cat
ON cat.id = bk_cat.category_id

JOIN books_authors bk_aut
ON bk_aut.book_id = bk.bookid

JOIN authors aut
ON aut.id = bk_aut.author_id

GROUP BY bk.title, cat.category
ORDER BY bk.title ASC

如您所见,没有使用 DISTINCT,但您将获得所有具有不同标题和类别的书籍。您添加到 GROUP BY 子句中的字段越多,您获得的不同数据就越多。

同样,如果你只想按标题列出书籍,你应该只在 GROUP BY 子句中保留 bk.title

关于mysql - 使用不同时如何限制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22428143/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com