sql - 从 MySQL 中的多个表中选择

标签 sql mysql

我有两个表,即 States、Package_Details。以下是该表的详细信息。

国家

  • 状态编号
  • 州名

Package_Details

  • 编号
  • sender_state//用状态ID存储状态
  • receiver_state//用状态ID存储状态

现在我在构建 SQL 查询时遇到问题,该查询将选择并显示 Package_Details 中的记录,用 States 表中相应的 state_name 替换 sender_state 和 receiver_state。

最佳答案

您需要加入。示例:

SELECT p.id, s1.state_name AS sender, s2.state_name AS receiver
  FROM 
       package_details p
  JOIN states s1 ON (p.sender_state = s1.state_id)
  JOIN states s2 ON (p.receiver_state = s2.state_id)

请注意如何在查询中使用 states 两次,方法是为其分配别名 (states s1) 并使用别名引用表。

如果您需要经常进行这种连接,您可能希望创建一个 View 。

MySQL 关于连接的文档在这里:http://dev.mysql.com/doc/refman/5.0/en/join.html .创建 View 的文档在这里:http://dev.mysql.com/doc/refman/5.0/en/create-view.html .

关于sql - 从 MySQL 中的多个表中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/762894/

相关文章:

php - 从 PHP 中的 SELECT 框中获取值

mysql - 城市名称字段的索引长度

mysql - 如何使用 "ORDER BY FIELD"对 SQL 的结果进行排序

php - 如何将数字格式化为十进制以将其存储在 mysql 中?

sql - 如何在 hive 中计算字数

mysql - 如何将SQL查询的结果输出到报表表中?

mysql - 使用 BLOB 数据类型在数据库中插入图像

php - 使用 cakephp 从数据库查找表连接值

iOS/ swift : directly manipulate remote MySQL over SSH

mysql - Symfony2中如何允许重复输入,SQLSTATE[23000]?