Mysql 需要数据的联接查询
我有以下几张桌子 A) 产品免费发行Mysql 需要数据的联接查询,mysql,Mysql,我有以下几张桌子 A) 产品免费发行 pfi_id pfi_lo_id 14966 57 B) 产品\免费\发布\详细信息 pfd_id pfd_pfi_id pfd_pr_price 30158 14966 677.97 30157 14966 677.97 C) 产品免费发布审核 pa_id pa_pfi_id pa_issue_qty pa_missing_extra 3421 14966 2
pfi_id pfi_lo_id
14966 57
B) 产品\免费\发布\详细信息
pfd_id pfd_pfi_id pfd_pr_price
30158 14966 677.97
30157 14966 677.97
C) 产品免费发布审核
pa_id pa_pfi_id pa_issue_qty pa_missing_extra
3421 14966 2 +8
3420 14966 3 +7
这里,标签产品免费发布的主键pfi\U id是产品免费发布和产品免费发布审核标签中的外键
需要复制数据的联接查询,如-
pfi_id pfi_lo_id pfd_id pfd_pfi_id pfd_pr_price pa_id pa_pfi_id pa_issue_qty pa_missing_extra
14966 57 30158 14966 677.97 3421 14966 2 +8
14966 57 30157 14966 677.97 3420 14966 3 +7
我尝试了这个查询(1)
它们返回的数据如下所示
pfi_id pfi_lo_id pfd_id pfd_pfi_id pfd_pr_price pa_id pa_pfi_id pa_issue_qty pa_missing_extra
14996 57 30157 14996 677.97 3420 14996 3 +7
14996 57 30158 14996 677.97 3420 14996 3 +7
pfi_id pfi_lo_id pfd_id pfd_pfi_id pfd_pr_price pa_id pa_pfi_id pa_issue_qty pa_missing_extra
14996 57 30157 14996 677.97 3420 14996 3 +7
14996 57 30157 14996 677.97 3421 14996 2 +8
还有这个(2)
然后返回如下数据
pfi_id pfi_lo_id pfd_id pfd_pfi_id pfd_pr_price pa_id pa_pfi_id pa_issue_qty pa_missing_extra
14996 57 30157 14996 677.97 3420 14996 3 +7
14996 57 30158 14996 677.97 3420 14996 3 +7
pfi_id pfi_lo_id pfd_id pfd_pfi_id pfd_pr_price pa_id pa_pfi_id pa_issue_qty pa_missing_extra
14996 57 30157 14996 677.97 3420 14996 3 +7
14996 57 30157 14996 677.97 3421 14996 2 +8
如果您想加入表,比如product_free_issue和product_free_issue_detail,pfi_id 14966应该在这两个表中。如果键是不同的,那么将它们连接起来是没有意义的,因为您混淆了示例数据中的ID。请检查
pfd\u pfi\u id
和pa\u pfi\u id
。这里只有14966,但在结果中,您将14966与14988结合起来。我认为这是不可取的。此外:您真的希望在结果中包含pfd\u id
和pa\u id
?他们似乎没有直接关系。如果pfi_id
14999有两个pfd_id
1和2,以及两个pa_id
3和4,那么您已经生成了四个结果行:14999/1/3、14999/1/4、14999/2/3、14999/2/4。我已经编辑了您的帖子,将查询显示为代码,这使其更具可读性,重新打开您的帖子还需要一次投票:)这只是我的表格示例,因为实际表格有许多列。是的,我还需要pfd_id和pa_id。是的,表中有很多条目,比如14988,但我在这里解释14966,只是为了得到上面的结果。这是返回4条记录多次重复数据。但对于上面的示例,我只需要2条记录。
SELECT pfi.pfi_id,
pfi.pfi_lo_id,
pfid.pfd_id,
pfid.pfd_pfi_id,
pfid.pfd_pr_price,
pfia.pa_id,
pfia.pa_pfi_id,
pfia.pa_issue_qty,
pfia.pa_missing_extra
FROM product_free_issue pfi
INNER JOIN product_free_issue_detail pfid
ON pfi.pfi_id=pfid.pfd_pfi_id
INNER JOIN product_free_issue_audit pfia
ON pfi.pfi_id=pfia.pa_pfi_id