MySQL表加入多个值

时间:2017-07-17 22:59:11

标签: mysql join

我有2个表,一个有2列产品ID(旧的和新的)需要相互映射,另一个表包含所有产品信息,包括相应的产品ID。我正在尝试运行查询以仔细检查产品是否正确匹配并且它无法正常工作,我需要返回的结果以显示旧ID和newid以及完整的产品信息。

以下是我使用的其他一些查询拼凑而成的内容,但我不确定我是否正确进行双连接。

SELECT `VinylOld2New`.`Old ID`, `asi_VinylOld2New`.`New ID`, old.`title`, new.`title`, old.`number`, new.`number`, old.`image`, new.`image`, old.`added`, new.`added` 
FROM `ii_Product` old, `ii_Product` new 
INNER JOIN `VinylOld2New` ON 
old.`id` = `VinylOld2New`.`Old ID` OR new.`id` = `VinylOld2New`.`New ID`

1 个答案:

答案 0 :(得分:1)

  1. 选择标准。两者都使用INNER JOIN,表示法。 (最好是较新的标准)
  2. 我不确定您希望如何加入数据。您对OR的使用似乎意味着您希望所有来自vinylOld2New的记录以及只有那些在ii_product(旧的或新的)中匹配的记录,但这是一个猜测。
  3. 您选择的第二列表示asi_VinylOld2NewNew ID但没有此类表格。那么选择错误的表还是from?
  4. 中的表

    SELECT `VinylOld2New`.`Old ID`
         , `VinylOld2New`.`New ID`
         , old.`title`
         , new.`title`
         , old.`number`
         , new.`number`
         , old.`image`
         , new.`image`
         , old.`added`
         , new.`added` 
    FROM `VinylOld2New` 
    LEFT JOIN `ii_Product` old
      ON old.`id` = `VinylOld2New`.`Old ID`
    LEFT JOIN `ii_Product` new 
      ON new.`id` = `VinylOld2New`.`New ID`