mysql的left join 和oracle有却别吗
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql的left join 和oracle有却别吗相关的知识,希望对你有一定的参考价值。
没有区别,所有关系型数据库的left join意义用法都是一样的 参考技术A 举个例子:假设a表和b表的数据是这样的。
a b
id name id stock
1 a 1 15
2 b 2 50
3 c
select * from a inner join b on a.id=b.id
这个语法是连接查询中的内连接,它产生的结果是
两个表相匹配的记录出现在结果列表中。
根据上面的表,出现的结果是这样的
a.id name b.id stock
1 a 1 15
2 b 2 50
----------------------------
select * from a,b where a.id=b.id
这个语法是内连接的另外一种写法,其执行结果与inner join 一样本回答被提问者采纳
如何在 Oracle 8i 中创建 INNER JOIN 和 LEFT JOIN
【中文标题】如何在 Oracle 8i 中创建 INNER JOIN 和 LEFT JOIN【英文标题】:How-To Create an INNER JOIN and LEFT JOIN in Oracle 8i 【发布时间】:2018-12-14 17:16:18 【问题描述】:我正在尝试创建一个 Oracle 8i QUERY,它结合了具有多个条件的内部联接以及具有多个条件的左联接。但是,我不断收到 SQL 命令未正确结束。我的经验主要是 T-SQl,所以如果这很明显,请提前道歉..
SELECT TRANS.CUSTOMER_NUMBER AS "AR CUST", CUST.CUSTOMER_NUMBER AS
"CUSTNUM", CUSTA.FVE_NUMBER AS "FVE"
FROM FINANCE.AR_TRANSACTIONS TRANS
JOIN FINANCE.CUSTOMERS CUST
ON (TRANS.CUSTOMER_NUM = CUST.CUSTOMER_NUM
AND TRANS.COMPANY_NUM = CUST.COMPANY_NUM)
LEFT JOIN FINANCE.CUSTOMER_ADDRESSES CUSTA
ON (TRANS.FVE_NUMBER = CUSTA.FVE_NUMBER
AND TRANS.COMANY_NUM = CUSTA.CUSTOMER_NUM )
WHERE ROWNUM < 5;
【问题讨论】:
ORA-00933: SQL command not properly ended in subquery with join的可能重复 谢谢你,就是这样!! 【参考方案1】:8i 不支持 ANSI '92 连接语法 left, right, inner, full outer, cross join syntax 你必须使用 (+) 符号...
类似...
SELECT TRANS.CUSTOMER_NUMBER AS "AR CUST"
, CUST.CUSTOMER_NUMBER AS "CUSTNUM"
, CUSTA.FVE_NUMBER AS "FVE"
FROM FINANCE.AR_TRANSACTIONS TRANS
, FINANCE.CUSTOMERS CUST
, FINANCE.CUSTOMER_ADDRESSES CUSTA
WHERE TRANS.CUSTOMER_NUM = CUST.CUSTOMER_NUM
AND TRANS.COMPANY_NUM = CUST.COMPANY_NUM
AND TRANS.FVE_NUMBER = CUSTA.FVE_NUMBER(+)
AND TRANS.COMANY_NUM = CUSTA.CUSTOMER_NUM(+)
AND ROWNUM < 5
【讨论】:
以上是关于mysql的left join 和oracle有却别吗的主要内容,如果未能解决你的问题,请参考以下文章
深入Oracle的left join中on和where的区别详解