sql - 如何在oracle中为两个表执行别名连接?

标签 sql oracle

我有以下问题。我有 2 个表要加入“TableALong”和“TableBLong”

TableALong

ID, Name, Store,Age
1, John, Walmart, 5
2, Johnny, Walmart, 8
3, Johnny, Target , 10
4, Bill, Shoppers, 2
5, Joe, Target, 3

TableBLong
ID, Name, Store, StoreAddress
1, John, Walmart, 35353 Address
1, John, Walmart, 53544 Address
2, Johnny, Walmart, 35353 Address

我想在加入之前做一些类似 ALIAS 的事情:

SELECT A.ID, A.NAME, A.STORE, A.AGE, B.STOREADDRESS
FROM TableALong as A, TableBLong as B
ON A.NAME = B.NAME and A.STORE = B.STORE

这在oracle中是无效的。让它在 oracle 中工作的正确查询是什么?我假设这是我想要的左连接? (join后,TableALong中的每一项都会有多行。)

最佳答案

固定查询:

SELECT A.ID,
       A.NAME,
       A.STORE,
       B.STOREADDRESS as yourAlias /* AS is ok for column aliases ... */
FROM TableALong A                  /* ... but not for table aliases */
     LEFT OUTER JOIN TableBLong  B /* JOIN syntax */
       ON (A.NAME = B.NAME and A.STORE = B.STORE)
WHERE ...

您可以使用 INNERFULL OUTER,而不是 LEFT OUTER,...;见here了解更多。

关于sql - 如何在oracle中为两个表执行别名连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36364200/

相关文章:

sql - 对动态行 postgresql 使用 lag()

php - 将数据插入表中的最用户友好的方式

sql - 考虑行之间的 "difference"对行进行分组

oracle - BPEL中的表达式构建器

mysql - 为 PostgreSQL 制作 ERD 的工具

mysql - 使用 insert into 使用 mysql

Android - 如何查看在我的应用程序中创建的 sql 数据库?我在 Eclipse 的 Android 模拟器上运行它

java - ClassNotFoundException 和 ClassDefNotFoundException 有什么区别

java - 如果 select 语句包含 DATE 类型的列,则聚合 SQL 查询不起作用

sql - Hibernate 空字符串用于 PostgreSQL 8.3 和 Oracle 11g 的相等限制