2017-06-13 29 views
-3

我在两个不同的表运行查询: -如何加入特定列两个表,而无需使用连接

select * from MessagesTable INNER JOIN ErrorTable ON MessagesTable.msgId = ErrorTable.msgId. 

是否有另一种方式来写这个查询,而无需使用JOIN?

+1

你为什么要这么做?没有其他办法可以加入两张桌子,然后加入他们。即使你不使用明确的“JOIN”,你仍然在加入它们。 –

+0

我只是不想使用JOIN,但是我确实需要加入它们,所以我只是询问查询我有可能在不使用JOIN的情况下连接两个表dat。 –

+0

使用明确的'JOIN'有什么问题?这是加入两个表格的最佳方式。 –

回答

1

如果您不想在查询中使用连接,您可以为此编写子查询。

下面查询SQL数据库 -

select * 
from MessagesTable 
where MessagesTable.msgId in (select ErrorTable.msgId from ErrorTable) 
+0

这不是一个加入 –

0

我不知道你想这样做,但为什么是你可以为你只MessagesTable想要的数据,只要做到这一点。它的名字叫sub query

select * from MessagesTable WHERE msgId IN (select msgId from ErrorTable) 
+0

这不是一个加入 –

+0

我知道,但我相信发布Q的人正在寻找这样一个答案。只是这个问题没有妥当解释。 – YuVi

+0

这会做一个诀窍吗? - 从MessagesTable中选择*,ErrorTable其中MessagesTable.msgId = ErrorTable.msgId –

0

是的,你可以就地加入特定列使用此查询

SELECT * FROM MessagesTable,ErrorTable其中MessagesTable.msgId = ErrorTable.msgId

+0

所以它将从MessagesTable和ErrorTable中的所有列中只读取MessagesTable.msgId = ErrorTable.msgId –