dqfwcj0030 2013-08-09 15:53
浏览 101
已采纳

使用外键id连接2个表

i have a 2 category system, basically what i want to do is i have 2 tables, top_category and bottom_category, i have created my sidebar which will list all the products using sql query. is there a way i can pull the top_category and bottom_category data in one sql query and have the bottom_category sorted by the foreign key id of top_category so when i loop them in a list they end up in the right nest?

Here are my tables,

CREATE TABLE top_category (
  id INT PRIMARY KEY,
  NAME VARCHAR(100) 
);

CREATE TABLE bottom_category (
  id INT PRIMARY KEY,
  NAME VARCHAR(100) ,
  top_category_id INT REFERENCES top_category
);

And here is my products table, so when i click on a bottom_category link i want it to list the products linked to the bottom_category_id's:

create table product (
  id int primary key,
  name varchar(100) ,
  bottom_category_id int references bottom_category
);
  • 写回答

2条回答 默认 最新

  • doufuxing8562 2013-08-09 16:00
    关注

    You could write something like

    SELECT product.*, bottom_category.name, top_category.name
    FROM product
    LEFT JOIN bottom_category ON bottom_category.id = product.bottom_category_id 
    LEFT JOIN top_category ON top_category.id = bottom_category.top_category_id
    ORDER BY top_category.id,bottom_category.id
    

    But if you have really big tables then just forget about 3nd normal form and add names for categories into product table. But only if you have really big tables with categories.

    UPD Add ORDER BY

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

报告相同问题?

悬赏问题

  • ¥15 目详情-五一模拟赛详情页
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line