如何重写这个:
select tab1.id, tab2.id, tab3.id
from tab1, tab2, tab3
where tab1.col1 = tab2.col1(+) and tab2.col2 = tab3.col2(+);
Run Code Online (Sandbox Code Playgroud)
使用OUTER JOIN语法?
我有一个表,想要外连接另一个表,只使用Oracle 10g获取第二个表的第一行(nr最低的那一行).
编辑: nr在id中是唯一的
Table x Table y
id id nr code
1 1 1 B
2 1 2 A
3 2 2 A
Expected result:
id nr code
1 1 B
2 2 A
3 NULL NULL
Run Code Online (Sandbox Code Playgroud)
测试数据的示例(不对单行进行限制,但应允许更快的测试):
WITH
x AS( SELECT 1 id FROM dual UNION SELECT 2 FROM dual UNION SELECT 3 FROM dual ),
y AS( SELECT 1 id, 1 nr, 'B' code FROM dual
UNION SELECT 1, 2, 'A' FROM dual
UNION SELECT 2, 2, …Run Code Online (Sandbox Code Playgroud) 作品:
AND UPPER(a.name) = b.lname(+)
Run Code Online (Sandbox Code Playgroud)
不起作用
AND UPPER(a.name) = UPPER(b.lname) (+)
Run Code Online (Sandbox Code Playgroud)
转移到ANSI连接是一个选项,但是一个艰难的选择.这个代码应该在很多地方改变,并且有很多连接.我希望这个语法正确并且在我的路上.
可能吗?
我知道这里有很多帖子,但它们都是关于我不明白什么是左,右和任何事情的具体问题
我有两个列表:左和右.我需要选择左边不正确的所有元素.
List<T> left = GetLeft();
List<T> right = GetRight();
IEnumerable result = // Have no idea
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?
我有两个矩阵,如下所示:
'01/01/2010' 1
'02/01/2010' 2
'03/01/2010' 3
'05/01/2010' 11
'06/01/2010' 17
'01/01/2010' 4
'02/01/2010' 5
'04/01/2010' 6
'05/01/2010' 7
Run Code Online (Sandbox Code Playgroud)
在MATLAB中做了一些棘手的事情后,我想创建以下三个矩阵:
'01/01/2010' 1 4
'02/01/2010' 2 5
'03/01/2010' 3 NaN
'04/01/2010' NaN 6
'05/01/2010' 11 7
'06/01/2010' 17 NaN
'01/01/2010' 1 4
'02/01/2010' 2 5
'05/01/2010' 11 7
Run Code Online (Sandbox Code Playgroud)
关于如何加入这些表的任何想法?干杯.
编辑:真的很抱歉我的错别字,伙计们.我更新了问题和输入/输出数据.请随时提供建议.
我有一个"内容框"-div元素,我正在使用php/include()加载页面.现在我制作了一个"盒子"-div,将被加载到"内容盒"-div,工作正常,就在内部div的内容增长过大而内部div正在扩展并"增长"出来的时候外部div.
如果内部div超过外部div的最小高度,我希望外部div元素增长.
我google了一些,发现(甚至在stackoverflow上)我必须在使用'float:right;'的div容器之后使用带有style ="clear:both"的div 或'浮动:左;'.
虽然我不确定在哪里放这些,我玩了一下但仍然无法弄清楚如何使这个工作.
JSFiddle:JSFiddle内部div超出外部div
假设我有5个表,如下所示:
CREATE TABLE T1 (
FIRST_NAME VARCHAR2(100),
LAST_NAME VARCHAR2(100),
CITY NUMERIC,
SALARY NUMERIC);
CREATE TABLE T2 (
CITY NUMERIC,
DISTRICT NUMERIC);
CREATE TABLE T3 (
DISTRICT NUMERIC,
DOMAIN NUMERIC);
CREATE TABLE T4 (
DOMAIN NUMERIC,
DETAILS_BOOK NUMERIC);
CREATE TABLE T5 (
DETAILS_BOOK NUMERIC,
FIRST_NAME VARCHAR2(100),
LAST_NAME VARCHAR2(100),
EMAIL VARCHAR2(100));
INSERT INTO T1 VALUES ('john', 'doe',1001,1000);
INSERT INTO T1 VALUES ('jack', 'jill',1001,2000);
INSERT INTO T1 VALUES ('jeff', 'bush',1001,1500);
INSERT INTO T2 VALUES (1001,1);
INSERT INTO T3 VALUES (1,543);
INSERT INTO T4 …Run Code Online (Sandbox Code Playgroud) 所以我正在玩几个连接查询,我注意到一些不寻常的行为,当我将查询从内部连接切换到外部连接,并将其他所有内容保持不变时,我收到错误,下面是两个查询正在运行.
SELECT Staff.Fname AS "First Name", Staff.Lname AS "Second Name", Booking_ID
FROM Staff INNER JOIN Booking ON Staff.StaffID = Booking.StaffID;
Run Code Online (Sandbox Code Playgroud)

然后当我切换它时,
SELECT Staff.Fname AS "First Name", Staff.Lname AS "Second Name", Booking_ID
FROM Staff OUTER JOIN Booking ON Staff.StaffID = Booking.StaffID;
Run Code Online (Sandbox Code Playgroud)
我得到Error ORA-00904 Invalid identifier "Staff"."StaffID".
我认为上述查询应该返回所有已预订的工作人员以及所有未预订的人员.
有任何想法吗?
我有两个data.tables.我想在一个中使用键来计算另一个中的键.
DT1 <- data.table(A = c("v1","v2","v1","v2","v3","v4","v5","v6","v1","v2"),
B = c(1,11,111,2,22,222,3,33,333,4))
DT2 <- data.table(C = c("v1","v3","v99"))
setkey(DT1,A)
setkey(DT2,C)
Run Code Online (Sandbox Code Playgroud)
使用DT2查找DT1中的行将返回外部联接.
nrow(DT1[DT2,]) #returns 5 (v1*3, v3*1, v99) "v99" not in DT2
DT1[DT2,]
A B
1: v1 1
2: v1 111
3: v1 333
4: v3 22
5: v99 NA
Run Code Online (Sandbox Code Playgroud)
是否可以使用相同的语法强制左连接?
我们如何使用旧语法进行 LEFT JOIN?
假设您有一个 User 表和 UserRole 表,并且您在 User 表中保存了 UserRole 的 ID。
以下是检索所有用户名和具有新符号的角色名的查询:
SELECT U.Username, US.[Desc] FROM [User] U
INNER JOIN UserRole US ON U.UserRoleId = US.Id
Run Code Online (Sandbox Code Playgroud)
这是旧的符号:
SELECT U.Username, US.[Desc] FROM [User] U, UserRole US
WHERE U.UserRoleId = US.Id
Run Code Online (Sandbox Code Playgroud)
现在,让我们假设所有用户都没有角色,UserRoleId 为 0 或 NULL。
以下是检索所有用户名和带有旧符号的角色名的查询:
SELECT U.Username, US.[Desc] FROM [User] U
LEFT JOIN UserRole US ON U.UserRoleId = US.Id
Run Code Online (Sandbox Code Playgroud)
问题是:我们如何在不使用 JOIN 一词的情况下使用旧语法做同样的事情?
outer-join ×10
oracle ×5
sql ×4
inner-join ×3
join ×2
left-join ×2
css ×1
data.table ×1
dataset ×1
expand ×1
html ×1
linq ×1
matlab ×1
r ×1
t-sql ×1