我正在使用此查询:
SELECT a.sales_id, d.bus_title, a.cat_id FROM tbl_sales a INNER JOIN tb_category b ON a.cat_id = b.cat_id INNER JOIN tbl_business d ON d.bus_id = a.bus_id
产生以下结果:
sales_id | bus_title |cat_id ----------|----------------|------------ 1 | Business 1 | 6 2 | Business 12 | 12 3 | Business 123 | 25
我改变了场CAT_ID到一个名为新表tb_sales_category包含的字段sales_category_id,sales_id,cat_id。我如何通过也加入该表来编写新查询,以获得与上述相同的结果?
tb_sales_category
sales_category_id
sales_id
cat_id
我是数据库新手,需要帮助。提前致谢
试试这个:
SELECT a.sales_id, d.bus_title, s.cat_id FROM tbl_sales a INNER JOIN tb_sales_category s ON a.sales_id = s.sales_id INNER JOIN tbl_business d ON a.bus_id = d.bus_id INNER JOIN tb_category b ON s.cat_id = b.cat_id
这个想法很简单,在新表中的第一个字段tb_sales_category是sales_category_id工作作为 代理键 ,它没有任何与其他两个表之间的关系。然后,我们来到了另外两个领域是哪些sales_id,cat_id这些你应该映射到关系的其他两个方面。
您不能Join tb_category b ON a.cat_id = b.cat_id使用新模式,因为我们已经没有了a.cat_id,这是新表tb_sales_category角色的实现,方法是将它插入两个绑定面,一个与INNER JOIN tb_category b ON s.cat_id = b.cat_id另一个绑定在一起INNER JOIN tb_sales_category s ON a.sales_id = s.sales_id。
Join tb_category b ON a.cat_id = b.cat_id
a.cat_id
INNER JOIN tb_category b ON s.cat_id = b.cat_id
INNER JOIN tb_sales_category s ON a.sales_id = s.sales_id
希望这是有道理的。