是否有任何 Oracle INNER JOIN 备用查询?

is there any Oracle INNER JOIN alternate query?

我在下面使用 INNER JOIN Oracle 查询 Netsuite REST 中的连接表 API。现在,测试版中的 netsuite REST API。

这是我的查询,下面的查询以前工作正常,但现在下面的查询不适用于 INNER JOIN,所以我想使用传统的连接查询而不使用 INNER JOIN。我知道旧的传统连接查询已经过时了,但我现在别无选择。

SELECT
Itemprice.price
as
actual_selling_price,Itemprice.pricelevelname,Item.pricinggroup,
Item.itemid
as
sku,Item.isserialitem,Item.ID
as
iteminternalid,Item.custitem_f3_category_type,Item.description,TransactionLine.Transaction
AS
TransactionID,Transaction.employee
as
salesrep,TransactionLine.custcol_f3_document_number
as
documentnumber,Transaction.TranDate,Transaction.custbody_es_customer_inv_number,Transaction.Type,
Transaction.TranID,Transaction.Entity
as
customer,TransactionLine.Rate,TransactionLine.quantity,
TransactionLine.NetAmount
FROM
TransactionLine
INNER JOIN
Transaction
ON
(
Transaction.ID
=
TransactionLine.Transaction
AND
Transaction.Entity=16249
AND
(transaction.recordtype='invoice' OR transaction.recordtype='cashsale')
AND
TransactionLine.memo!='CostofSales' AND TransactionLine.itemtype!='ShipItem')
INNER JOIN
Itemprice
ON(TransactionLine.Item
=
Itemprice.item
)
INNER JOIN
Item
ON
(
Item.ID
=
TransactionLine.Item
AND
(LOWER(Item.description)
LIKE
LOWER('%44753BLK%')
or
UPPER(Item.description)
LIKE
UPPER('%44753BLK%')
OR
Item.itemid
=
'44753BLK'
OR
Transaction.TranID
=
'44753BLK'
OR
Transaction.custbody_es_customer_inv_number
=
'44753BLK'))
ORDER
BY
trandate
DESC

我想在不使用 INNER JOIN,JOIN 关键字的情况下将上述查询转换为连接查询。 有没有其他方法可以在不使用 oracle 中的 INNER JOIN,JOIN 关键字的情况下连接表?

您问过是否有办法做到这一点。是的。如今,很少有您希望使用这种语法的情况(例如,在较旧的 Oracle Reports Builder 版本中),但是 - 如果您坚持,方法如下:

SELECT itemprice.price                               AS actual_selling_price,
       itemprice.pricelevelname,
       item.pricinggroup,
       item.itemid                                   AS sku,
       item.isserialitem,
       item.id                                       AS iteminternalid,
       item.custitem_f3_category_type,
       item.description,
       transactionline.transaction                   AS transactionid,
       transaction.employee                          AS salesrep,
       transactionline.custcol_f3_document_number    AS documentnumber,
       transaction.trandate,
       transaction.custbody_es_customer_inv_number,
       transaction.type,
       transaction.tranid,
       transaction.entity                            AS customer,
       transactionline.rate,
       transactionline.quantity,
       transactionline.netamount
FROM transactionline,
     transaction,
     itemprice,
     item
WHERE transaction.id = transactionline.transaction
      AND transaction.entity = 16249
      AND(   transaction.recordtype = 'invoice'
          OR transaction.recordtype = 'cashsale'
         )
      AND transactionline.memo != 'Cost of Sales'
      AND transactionline.itemtype != 'ShipItem'
      AND transactionline.item = itemprice.item
      AND item.id = transactionline.item
      AND (   lower(item.description) LIKE lower('%44753BLK%')
           OR upper(item.description) LIKE upper('%44753BLK%')
           OR item.itemid = '44753BLK'
           OR transaction.tranid = '44753BLK'
           OR transaction.custbody_es_customer_inv_number = '44753BLK'
          )
ORDER BY trandate DESC;