在mysql中连接两个表,给出重复的结果

时间:2015-02-06 15:41:04

标签: php mysql sql

我正在尝试连接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'

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

1 个答案:

答案 0 :(得分:0)

您加入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) ...
  4. 我承认我并不完全明白你要做的事情。多一点解释可能有所帮助。