这是我的表格和这些表格的数据
表名: 代码
CID Code 1 abc 2 def 3 xyz
表名: 详细信息
ID Name CID 1 a 1 2 b 2
结果表:
ID Code Name 1 abc a 2 abc Null 3 def b 4 def Null 5 xyz Null 6 xyz Null
我想从代码表中获取所有记录,而对于每个代码,我必须从详细信息表中获取所有行,如果某些代码具有所需的值,如果没有,则为Null
谢谢
听起来您在寻找笛卡尔积:
SELECT c.CID * d.ID AS ID, c.Code, CASE WHEN c.CID = d.CID THEN d.Name ELSE NULL END AS Name FROM Code c CROSS JOIN Details d
尽管对于较大的表,笛卡尔乘积相当慢…所以请确保这是您真正想要的。