从MySQL中的多个表中进行选择

War*_*der 2 mysql sql

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

状态

  • STATE_ID
  • STATE_NAME

Package_Details

  • ID
  • sender_state //使用状态ID存储状态
  • receiver_state //用状态ID存储状态

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

der*_*ert 5

你需要加入.例:

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)
Run Code Online (Sandbox Code Playgroud)

请注意如何states通过为查询分配别名(states s1)并使用别名来引用表来在查询中使用两次.

如果您需要经常进行此连接,您可能希望创建一个视图.

关于连接的MySQL文档在这里:http://dev.mysql.com/doc/refman/5.0/en/join.html.有关创建视图的文档,请访问:http://dev.mysql.com/doc/refman/5.0/en/create-view.html.