我有自己的商店数据库,我想一起加入两张桌子。
id_order | reference | id_shop_group | id_shop | id_carrier | id_lang | id_customer | id_cart
我的orders
表及其下方的标题行是customers
表的标题。
id_customer | id_shop_group | id_shop | id_gender | firstname | lastname
我想要做的是根据id_customer
列加入它们。更具体地说,我希望添加customers
的所有列,但基于orders
的{{1}}表已经存在的列除外。加入表后应如下所示:
id_customer
在搜索解决方案时,我找到了id_order|reference|id_shop_group|id_shop|id_carrier|id_lang|id_customer|id_cart|id_gender|firstname|lastname
个关键字,但我不确定如何以我想要的方式使用它。
答案 0 :(得分:1)
我们没有"添加列到表格#34;。相反,我们将SQL提交给返回我们想要的结果集的数据库。在您的情况下,我们想要加入两个表,我们可以使用两个表之间通用的id_customer
字段上的INNER JOIN来实现。如果您想永久保留这些结果,我们可以将其转换为自己的表格。它看起来像
SELECT
orders.id_order,
orders.reference,
orders.id_shop_group,
orders.id_shop,
orders.id_carrier,
orders.id_lang,
orders.id_customer,
orders.id_cart,
customer.id_gender,
customer.firstname,
customer.lastname
FROM orders INNER JOIN customer on orders.id_customer = customer.id_customer;
您可以调整从这些表的连接中返回的字段列表,以满足您的需求。
答案 1 :(得分:1)
id_shop和id_shop_group在两个表中的事实表明它们是复合键的一部分。您可能需要使用所有三个共享列进行连接以保证唯一行。否则,您可以检索客户属于多个商店的重复订单行。
e.g。
SELECT
...
FROM orders INNER JOIN customer on orders.id_customer = customer.id_customer
and orders.id_shop_group = customer.id_shop_group
and orders.id_shop = customer.id_shop