php - 连接mysql中的两个表给出重复的结果

标签 php mysql sql

我正在尝试连接 mysql 中的 2 个表。但是,我得到了重复的值。这个SQLFIDDLE会清楚我的意思。

结果中,您可以看到 TW_IDPFC_ID。我只需要 (1, 1), (11, 11), (21, 21) 等等..现在我得到 (1, 1), (1, 11 ), (1, 21), ...

我正在使用此查询:

SELECT tw.id as tw_id, pfc.id as pfc_id
FROM account_treasury_wholesale tw
INNER JOIN purchase_foreign_currency pfc
    ON tw.wholesaler_id = pfc.currency_supplier_id
WHERE tw.wholesaler_id='11'

如果您需要更多说明,请告诉我。谢谢。

最佳答案

您要么加入ON tw.id=pfc.id,要么如果不适用,您可能需要修改您的架构。

这就是当您加入 ON tw.wholesaler_id = pfc.currency_supplier_id 时会发生的情况:

  1. tw 表中检索的第一行是 tw.id=1(因为您的 WHERE 子句)
  2. 该行的 tw.wholesaler_id 为 11,因此它将在 pfc 表中查找 pfc.currency_supplier_id 也相等的行到 11——即 4 行(id 等于 1, 11, 21, 23)。因此叉积将是 (1, 1), (1, 11), (1,21), (1 ,23)
  3. 检索 tw 表中的下一行,并对 pfc 表进行相同的搜索,这将导致 (11,1), ( 11,11), (11,21), (11,23)...

我承认我不完全理解你想要做什么。更多解释可能会有所帮助。

关于php - 连接mysql中的两个表给出重复的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28369372/

相关文章:

php - 在 mysql 查询中以逗​​号分隔搜索

sql - 使用 UNION 运算符在 SQL View 上创建索引?它真的会提高性能吗?

php - 在 session 中存储 PHP 对象?

php - 将 XML 存储在数据库中以获得灵活的内容

mysql:对索引字段的慢查询

mysql - 如何将逗号分隔的字符串与逗号分隔的 MySQL 字段相匹配

php - Laravel 按月收集

php - 用 php 启动一个守护进程

mysql - phpmyadmin MySQL数据以ascii值存储在某个表中

mysql - 如何组合这些选择/连接?