连接mysql中的两个表,得到重复的结果


connect two tables in mysql giving duplicate results

我正在尝试连接mysql中的两个表。但是,我得到了重复的值。这个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)

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