问题描述
我有a,b2张表a表中有个主key字段idb表中有个字段aid对应a表中的字段id但不是主key,有多个重复现在是要2张表联合查询,根据a表中id字段同时检索a,b2表中id为同一值得记录放在一个dataset中。sql该怎么写?谢谢比如:a表b表字段名称:idxxxx字段:aidxxxx内容:1xxxx内容:1xxxx2xxxx1xxxx如果我的id条件是为1则因该检索出3条记录。a表1条。b表2条放在同一个dataset中。sql怎么写?
解决方案
解决方案二:
selecta.id,a.xx1,a.xx2fromawhereid=1unionallselectb.id,b.xx1,b.xx2frombwhereid=1
解决方案三:
谢谢你的回复我2张表的需要检索的字段数量不同可以么?a表字段和值idx1x2x31x1x2x3b表字段和值aidx4x51x4x5这样可以么?selecta.id,a.x1,a.x2,a.x3fromawhereid=1unionallselectb.id,b.x4,b.x5,frombwhereaid=1
解决方案四:
上面写错了。这里更正下。selecta.id,a.x1,a.x2,a.x3fromawhereid=1unionallselectb.aid,b.x4,b.x5,frombwhereaid=1
解决方案五:
(selecta.id,a.x1,a.x2,a.x3fromawhereid=1)union(selectb.aid,b.x4,b.x5,frombwhereaid=1)
解决方案六:
引用2楼nyyswd的回复:
谢谢你的回复我2张表的需要检索的字段数量不同可以么?a表字段和值idx1x2x31x1x2x3b表字段和值aidx4x51x4x5这样可以么?selecta.id,a.x1,a.x2,a.x3fromawhereid=1unionallselectb.id,b.x4,b.x5,frombwhereaid=1
selecta.id,a.x1,a.x2,a.x3fromawhereid=1unionallselectb.id,b.x4,b.x5,''asx3frombwhereaid=1
第二个不加as也可以,union后的列名是第一个语句的列名