【问题标题】:SQL Join two tables without RelationsSQL连接两个没有关系的表
【发布时间】:2013-07-30 23:47:03
【问题描述】:

我有不同的表结构相同,我想通过其中一列加入它们。

问题是他们不共享该列中的信息。

Table 1 - Type A:

Name | Value

Table 2 - Type B:

Name | Value

结果表:

(在单个列中)

nameFromA

nameFromB
...

到目前为止,我已经尝试过:

SELECT TABLE1.NAME, TABLE2.NAME 
FROM TABLE1, TABLE2 
WHERE TABLE1.NAME = 'SearchQuery'
OR TABLE2.NAME = 'SearchQuery' LIMIT 2;

我知道我的查询是错误的,因为我调用了比我想要的更多的列,但我不确定如何将所有内容合并到一个列中。我怎样才能做到这一点?

【问题讨论】:

  • 感谢您的回复。你到底需要什么?我的数据库已经建好了。它有 21 个表,每个表 30 列。

标签: sql database join datatable


【解决方案1】:

你试过了吗?

SELECT TABLE1.NAME
FROM TABLE1
WHERE TABLE1.NAME = 'SearchQuery'

UNION

SELECT TABLE2.NAME
FROM TABLE2 
WHERE TABLE2.NAME = 'SearchQuery';

如果您不想排除重复值,您可能需要使用UNION ALL

要限制您的结果集,您可以执行以下操作:

SELECT * FROM ( HERE GOES ABOVE QUERY ) LIMIT 2;

【讨论】:

  • 也可能是ALL,由于防火墙,我不能将UNIONALL 放在我的帖子中... :(
  • @GoatCO 是的,如果他想获得重复的值。你的防火墙是什么意思?
  • 这只是我的防火墙的一个奇怪的怪癖,当我在 SO 和 SQLFiddle 上的 ALL 旁边发布 UNION 时出错,但在其他网站上没有。
【解决方案2】:

问题是他们不共享该列中的信息。

如果他们在您想加入的列中没有分享任何信息,则加入是meaningless.


一个简单的连接如下所示:

SELECT Name FROM Table1 t1
JOIN Table2 ON (t1.Name=t2.Name)

【讨论】:

    猜你喜欢
    • 2010-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-25
    • 1970-01-01
    • 2013-03-01
    • 1970-01-01
    • 2015-09-08
    相关资源
    最近更新 更多