mysql - SQL 从其他表中选择具有相应值的列

标签 mysql sql join

供应商

 Part Number Supplier

    XXX        A           
    XXX        B
    YYY        C

零件号

 PK_ID Part Number

   1        XXX
   2        YYY

我想根据零件号中的PK_ID使用附加列FK_ID来选择它:

 FK_ID Part Number Supplier

   1       XXX        A           
   1       XXX        B
   2       YYY        C

什么不起作用:

 SELECT s.`Part Number`, s.`Supplier`, p.`PK_ID` 
   FROM `Suppliers` AS s, `Part Numbers` AS p 
JOIN ON s.`Part Number` = p.`Part Number` 

最佳答案

切勿在 FROM 子句中使用逗号。始终使用显式 JOIN 语法:

SELECT s.`Part Number`, s.Supplier, p.PK_ID`
FROM Suppliers JOIN
     `Part Numbers` p 
     ON s.`Part Number` = p.`Part Number` ;

我鼓励您命名表和列时不带空格,这样您就不需要转义名称。必须在 SQL 语句中添加一堆反引号只会分散编写或读取查询的注意力。

关于mysql - SQL 从其他表中选择具有相应值的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36292205/

相关文章:

SQL Server 在列上匹配两个表

mysql 从最后 n 行中选择

PHP mysql session 数组

mysql - ODBC 3.51 驱动程序无法连接到本地主机上的 MySQL 服务器 (10061)

mysql - 在 SQL 数据库中保存大型文本数据(保存在字符串生成器中)的最佳方法?

sql - 如何无条件连接两个表

php - 在 Android 应用程序中使用 post 方法时,mysql 转义字符串是否足够

c# - SQL命令文本到DataSet的直接方法

SQL分组步骤

node.js - 如何在 Sequelize Postgresql 中执行多个内部连接