我对这个mysql查询有问题:
表格组:
--------------
ID group
--------------
50 gr1
51 gr2
120 gr3
121 gr4
--------------
表格rel_group :
---------------------------
ID id_oth type_rel
---------------------------
50 120 1
50 121 1
51 50 2
---------------------------
我需要得到行的结果(特别是'group.group'和'rel_group.type_rel'),其中数字50在ID列或id_oth上(都在查看rel_group表)。我对这些查询得到了一些部分结果:
SELECT group.group, a.type_rel
FROM group
INNER JOIN rel_group a ON ( group.ID = a.id_oth )
WHERE a.ID = 50
SELECT group.group, b.type_rel
FROM group
INNER JOIN rel_group b ON ( group.ID = b.ID )
WHERE b.id_oth = 50
但如果我将两个查询合并为一个,结果总是为0行。
有谁知道怎么做?
答案 0 :(得分:1)
由于您从两个查询中分别获取输出,请使用 UNION ALL 作为
加入它们SELECT Table1.group, a.type_rel
FROM Table1
INNER JOIN rel_group a ON ( Table1.ID = a.id_oth )
WHERE a.ID = 50
union all
SELECT Table1.group, b.type_rel
FROM Table1
INNER JOIN rel_group b ON ( Table1.ID = b.ID )
WHERE b.id_oth = 50;
答案 1 :(得分:0)
你可以使用和OR条件
SELECT group.group, a.type_rel
FROM group
JOIN rel_group a ON ( group.ID = a.id_oth )
WHERE a.ID = 50 OR a.id_oth = 50