doushang9172 2012-04-09 06:44
浏览 31
已采纳

使用PHP MYSQL将带有递归my book_category的book_list加入SQL

I have two tables names book_list and book_category. Schema is like below:

book_list

+---------+--------+-----------+  
| id_book | id_cat | book_name |     
+---------+--------+-----------+     
|   1     |    3   | Book Nam1 |
|   2     |    1   | Book Nam2 |
|   3     |    2   | Book Nam3 |
+---------+--------+-----------+

book_category

+--------+----------+-----------+-------+
| id_cat | cat_name | id_parent | level |
+--------+----------+-----------+-------+
|   1    |   name1  |     0     |   1   | 
|   2    |  name1.1 |     1     |   2   |
|   3    |name1.1.1 |     2     |   3   |
+--------+----------+-----------+-------+

code tried:

SELECT a.id_book, a.id_cat, a.book_name, b.cat_name, b.level 
FROM book_list a
INNER JOIN book_category b  ON  a.id_cat = b.id_cat

I need to manipulate the result array to add breadcrumb where each has link to itselfs like:

table row:
<td>3(id_book)</td>
<td>Book Nam3 (book_name)</td>
<td>
  <a href="handle.php?id=<?=id_cat;?>">Name 1</a> » 
  <a href="handle.php?id=<?=id_cat;?>">Name 1.1</a> »
  <a href="handle.php?id=<?=id_cat;?>">Name 1.1.1</a>
</td>

Hope I made my point and thank you for any help.

  • 写回答

2条回答 默认 最新

  • dosgy00204 2012-04-09 07:11
    关注

    Try this query.

    SELECT
      bl.id_book, bl.id_cat, bl.book_name, tc2.cat_name, tc2.level
    FROM
      book_list bl
    JOIN book_category tc
      ON tc.id_cat = bl.id_cat
    JOIN book_category tc2
      ON LOCATE(tc2.cat_name, tc.cat_name) > 0
    WHERE
      tc.id_cat = 3
    

    This query is based on occurrence of cat_name substrings.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码