我有两张桌子:
1)员工表
Name Category
New York Type-1
Vancouver Type-2
Oakland Type-1
(请注意,Ash的城市信息缺失)
2)城市表
Name Type
John Type-1
Tom Type-2
Ash
Chris Type-1
我想进行查询,打印所有员工姓名和城市类型(如果有)。
上述情况下的预期输出是
SELECT e.Name
c.Type
FROM employee e, city c
WHERE e.City = c.Name
我试过了,
A= [1 0 1;
0 0 1;
1 1 0;
0 0 1];
[ii,jj] = find(A)
kk = unique(jj);
for i = 1:length(kk)
v{i} = ii(jj==kk(i));
end
t=cell(1,length(kk));
[t{:}]= ndgrid(v{:});
product = []
for i = 1:length(kk)
product = [product,t{i}(:)];
end
没有运气。
PS:我是Oracle和SQL的新手
答案 0 :(得分:0)
详细了解JOIN
条款,尤其是LEFT JOIN
条款:
http://www.techonthenet.com/oracle/joins.php
答案 1 :(得分:0)
你需要左加入:
SELECT e.Name c.Type FROM employee e
Left join city c on e.city=e.city
答案 2 :(得分:0)
你想要一个LEFT JOIN
SELECT e.Name, c.Type
FROM employee e
LEFT JOIN city c ON e.City = c.Name
答案 3 :(得分:0)
看看这是如何标记Oracle的,我想输入使用Oracle SQL而不是ANSI的选项:
选择e.name,c.type 来自员工e,城市c 其中e.city = c.city(+)
答案 4 :(得分:-1)
首先,您需要了解SQL连接的工作原理。请阅读下面这个ilustrated帖子,了解您的需求。
https://blog.codinghorror.com/a-visual-explanation-of-sql-joins/