如何组合两个表来获得结果

时间:2012-09-05 06:53:33

标签: sql

以下是我的主表:

    tablename       columnname         size  order
    employee        name               25    1
    employee        sex                25    2
    employee        contactNumber      50    3
    employee        salary             25    4
    address         street             25    5
    address         country            25    6

以下是我的孩子表:

    childid  userid  masterid  isactive  size   order
    1        1       1         Y         25     1
    2        1       2         Y         25     2
    3        1       3         N         0      0
    4        1       4         Y         50     3

我想从主表和大小中获取表名列名,在子表中isactive is Y时针对用户ID订购表格子表。

有时候,如果特定用户的值不是,那么获取所有值,例如tablename,columnname,size,order where isactive is Y

我很遗憾地问这个,但我不擅长SQL。

问候。

1 个答案:

答案 0 :(得分:1)

使用INNER JOIN代替LEFT JOIN

SELECT rcm.tablename, rcm.columnname, rcc.size, rcc.order 
from report_customise_master rcm 
        INNER JOIN report_customise_child rcc 
            ON rcm.id = rcc.masterid 
WHERE rcm.isactive = 'Y' and rcc.isactive = 'Y'

更新1

..., COALESCE(rcc.size, rcm.size) as Size, 
     COALESCE(rcc.`Order`, rcc.`order`) as `Order`