mysql - 连接多个唯一键表但仅返回一行

标签 mysql sql inner-join

我的导入列表如下表import_order pk:import_date,import_no,product_id

--------------------------------------------------------------------------
import_date | import_no | product_id | supplier_id | purchase_cost | qty |
--------------------------------------------------------------------------
2018-01-02  | M0001     | p00001     | s00001      | 2500          | 7   |
2018-01-02  | M0001     | p00002     | s00001      | 2700          | 4   |
2018-01-02  | M0001     | p00003     | s00001      | 3500          | 5   |
--------------------------------------------------------------------------

我想将供应商详细信息加入下表

supplier_detail

-------------------------------------------------
 supplier_id | supplier_name   | tel            |
-------------------------------------------------
 s00001      | DevelopGlasses  | +11254421478   |
 s00002      | Operalise       | +11252232547   |
 s00003      | Azuing          | +11245454478   |
-------------------------------------------------

我想查询这样的结果

--------------------------------------------------------------------------------
import_date | import_no| product_id | supplier_id| supplier_name| tel          |
--------------------------------------------------------------------------------
2018-01-02  | M0001    | p00001     | s00001     |DevelopGlasses|+11254421478  |
2018-01-02  | M0001    | p00002     | s00001     |DevelopGlasses|+11254421478  |
2018-01-02  | M0001    | p00003     | s00001     |DevelopGlasses|+11254421478  |
--------------------------------------------------------------------------------

这是我的 sql

SELECT i.*,s.* FROM import_order i INNER JOIN supplier_detail s ON i.s_id = s.s_id

结果是

--------------------------------------------------------------------------------
import_date | import_no| product_id | supplier_id| supplier_name| tel          |
--------------------------------------------------------------------------------
2018-01-02  | M0001    | p00001     | s00001     |DevelopGlasses|+11254421478  |
--------------------------------------------------------------------------------

最佳答案

您需要将 on 条件更正为

SELECT i.import_date, i.import_no, i.product_id, 
       i.supplier_id, s.supplier_name, s.tel    
FROM import_order i 
INNER JOIN supplier_detail s 
      ON i.supplier_id = s.supplier_id; -- instead of i.s_id = s.s_id

关于mysql - 连接多个唯一键表但仅返回一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50014628/

相关文章:

MySQL 不返回所有行

php - 从新行获取数据

php - 如何为另一列中具有相同值的每个结果将时间戳值加一

mysql - 使用在表 2 中找到的结果的最低 ID 更新表 1 行的 SQL 字段

MySQL 如何仅通过以下查询显示最大值/最大值?

php:使用参数从另一个 php 文件执行 php 文件

mysql - 具有多个 JOIN 的表的 Slick Plain SQL 隐式 GetResult

mysql - 如何上传文件到数据库

mysql - 如何保留存在同一关系的多个实例的关联表?

android - 三张 table 上的 Ormlite 内部连接