【问题标题】:Selective additional condition in the JOINJOIN 中的选择性附加条件
【发布时间】:2019-12-23 09:00:47
【问题描述】:
SELECT id,
       name,
       contact,
       city
FROM table_1
  JOIN table_2
    ON table_1.id = table_2.id
    OR (table_1.age = JSON_EXTRACT_PATH_TEXT (property,'age',TRUE)
WHERE table_1.info = 'Employee'
AND   table_1.det = 'A') WHERE id > 10 AND city IN ('abc','def');


SELECT id,
       name,
       contact,
       city
FROM table_1
  JOIN table_2
    ON table_1.id = table_2.id
    OR (table_1.age = JSON_EXTRACT_PATH_TEXT (property,'age',TRUE)
AND table_1.info = 'Employee'
AND   table_1.det = 'A') WHERE id > 10 AND city IN ('abc','def');

我有一种情况,我只在满足条件时才想要加入。 我想知道以上哪一项是正确的方法。

【问题讨论】:

  • 请包含完整的实际查询以及一些示例数据。
  • 嗨@Anindita,欢迎来到 Stack Overflow:这里有一件事不清楚。请向我们明确您的问题。您说“第二次加入”,但您只有一次加入。当您说“第二次加入”时,您是指第一个示例中 where 子句中的部分吗?
  • @Anindita 。 . .什么是“第二”加入?这些列来自哪些表?
  • @VBoka 我的错。我的意思是写连接。我已经更新了我的问题。
  • @TimBiegeleisen 很抱歉,我添加了一个实际数据的 sn-p 示例,因为我无法与示例数据一起共享实际查询。

标签: sql join amazon-redshift


【解决方案1】:

第一个比第二个好,因为我们在第一个查询中使用 WHERE 子句进行了限制,如果条件满足来自 for 'info,id,city' 那么只有你会得到结果.

【讨论】:

    猜你喜欢
    • 2015-01-12
    • 1970-01-01
    • 2020-11-13
    • 2015-05-05
    • 2014-08-26
    • 1970-01-01
    • 1970-01-01
    • 2018-05-22
    • 2015-02-23
    相关资源
    最近更新 更多