gpt4 book ai didi

MySQL知道公共(public)列,如何?

转载 作者:可可西里 更新时间:2023-11-01 08:21:16 25 4
gpt4 key购买 nike

我通常使用公共(public)列在两个表之间执行 JOIN,在本例中为“product_code”。

现在出现了这个没有连接的查询:

SELECT `rp_products`.`product_code`, `rp_log`.`customer_id`, `rp_products`.`product_name`
FROM rp_products, rp_log
WHERE (`rp_log`.`customer_id` = '111')
ORDER BY `rp_products`.`product_code` ASC, `rp_log`.`customer_id` ASC

返回:

product_code    customer_id     product_name
105 111 Paintballs 2000PBS
105 111 Paintballs 2000PBS
106 111 Gloves
106 111 Gloves

我想知道的是,它如何显示正确的“product_name”而不在表之间加入“product_code”? product_code 不是主键或类似的东西。 product_name 是表中两列的名称。

  • rp_log 存储 customer_id、product_code 和购买日期(此处未显示)。
  • rp_products 存储产品代码、价格(此处未显示)和产品名称。

感谢您的宝贵时间,埃文。

最佳答案

您正在执行整个 rp_products 表和 rp_log 的子表的叉积,该子表的 customer_id 为 111。我猜你在 rp_log 中有两个 111 条目,在 rp_products 中有两个条目;然后连接中每个表(或子表)中的每个条目将与另一个表中的每个条目配对,以在结果集中生成四 (= 2 × 2) 行。

包括来自 rp_logrp_products 的更多列可能会为您澄清一些事情。

关于MySQL知道公共(public)列,如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8291440/

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