【问题标题】:Selecting data from two tables without joining从两个表中选择数据而不连接
【发布时间】:2012-05-25 16:52:39
【问题描述】:

这是交易:

表 A 有 A1 和 A2 列

表 B 有 B1、B2、B3 列

现在我想从 A1 和 B1 列中选择数据(不连接),条件是:-

B3='someword' 和 A2=B2

如果不需要打印 B1,我会将查询(无连接)写为:

select A1 from A where A2 in (select B2 from B where B3='someword');

但是我需要同时打印 A1 和 B1,那么是否可以在不使用 join 和使用 'IN' 的情况下做到这一点???

【问题讨论】:

  • 为什么不能使用联接?
  • 我可以使用连接,但是如果表太大了怎么办!!!!!!
  • 不,不是任何作业,经过大量谷歌搜索后,我得到了字典的数据库格式,我想自己制作一个字典应用程序。我在这种情况下提出了这个问题。
  • 如果表很大,IN 会比JOIN 更糟糕!
  • @DarrenDavies 世界各地的人们,加入表格,我们将开始一段爱情列车,爱情列车youtube.com/watch?v=9w6p4gYHd-E

标签: mysql sql


【解决方案1】:

当您说需要将输出限制在 A2=B2 的位置时

您正在指定一个联接。

称它为别的东西并不会改变它的本来面目……套用威利的话,

“任何其他名称的连接仍然是一个连接”

说真的,“连接”不是名称,也不是单词,甚至是用于应用它的查询中的语法,它是基于逻辑的谓词或限制或过滤器来自两个不同表的值。如果您需要将输出限制在 Table1.A2 等于 Table2,B2 的位置,那么您有一个 Join

【讨论】:

    【解决方案2】:

    如果没有JOIN,您将无法有效地执行此操作,或者换句话说,您可以使用inserted select,但是此操作要慢得多,例如JOINJOIN 是最佳选择,并且以编程方式和数据库编写。当您向他推销缓慢的 IS 时,您潜在的未来客户不会那么高兴。

    【讨论】:

    • 我也会设置你的,但 stackoverflow 不允许我这样做......无论如何,谢谢你。
    猜你喜欢
    • 2013-06-30
    • 1970-01-01
    • 1970-01-01
    • 2019-07-04
    • 1970-01-01
    • 2017-04-10
    • 1970-01-01
    • 2016-08-02
    • 1970-01-01
    相关资源
    最近更新 更多