我有一个名为tbl_PO的表和另一个名为tbl_PO_LineItems的表。在tbl_PO中,相关字段是“PO#”和“状态”。 “状态”字段有几个选项,我们现在感兴趣的是“已关闭”。每个PO都有许多行项,因此tbl_PO中的PO#和tbl_PO_LineItems中的PO#之间存在1对多的关系。 tbl_PO_LineItems中有一个名为'LineNum'的字段,它是行项目编号。还有另一个名为“Code”的字段,它是PO#和LineNum的组合。我知道这是一个组合字段,但它使数据流更容易在数据库的其余部分。
在另一个表中,将其命名为tbl_table3,我希望能够使用SQL语句:
SELECT Code FROM tbl_PO_LineItems WHERE tbl_PO.Status = 'Closed'
问题是代码与tbl_PO中的任何字段都没有直接链接。我需要浏览与该代码关联的PO#,以从tbl_PO获取该PO#的状态值。我怎样才能做到这一点?我在JOIN命令上读了一下,但我对它不太满意。
感谢任何帮助。
答案 0 :(得分:2)
使用INNER JOIN
:
SELECT t1.PO_num, t2.Code
FROM tbl_PO t1
INNER JOIN tbl_PO_LineItems t2
ON t1.PO_num = t2.PO_num
WHERE t1.Status = 'Closed'
我不知道我对合并的专栏Code
有多疯狂,但没有更多信息,我无法提出任何改进建议。
答案 1 :(得分:0)
以下是一些选项,有一个加入,一个没有。如果这就是你要问的问题,请告诉我。(我把它写成了我的头脑,但它应该运行)
SELECT * --you can choose your columns here
FROM tbl_PO AS PO, tbl_PO_LineItems AS LineItems
WHERE PO.ID = LineItems.PONumber
AND LineItems.Status = 'Closed
或加入
SELECT *
FROM tbl_PO AS PO
JOIN tbl_PO_LineItems AS LineItems
ON LineItems.PONumber = PO.ID
AND LineItems.Status = 'Closed