0

我怎样才能做这样的事情但避免错误column common_reference is ambiguous?我知道这是模棱两可的,我想从 table_one 中选择 common_reference 的所有结果,并且 table_two 相同。

SELECT * FROM table_one, table_two WHERE common_reference = 42

这显然是行不通的,那么如何使用子查询来实现我所需要的呢?

4

4 回答 4

0

从...开始...

SELECT * FROM table_one, table_two WHERE table_one.common_reference = 42

...并继续这条路:

SELECT * FROM table_one as T1, table_two as T2 WHERE T1.common_reference = 42
于 2010-12-20T13:25:57.983 回答
0
SELECT table_one.* FROM table_one, table_two WHERE table_one.common_reference = 42
于 2010-12-20T13:26:01.193 回答
0

如果您的 SQL 中存在无法解决的歧义,MySQL 将通过错误通知您。

如果您想引用另一个表中也存在的特定字段(或者如果您正在对自身进行连接,则为同一个表),请使用完全限定字段

SELECT * FROM table_one, table_two WHERE table_one.common_reference = 42

和/或表别名

SELECT * FROM table_one T1a, table_one T1b WHERE T1a.common_reference = 42

注意:公平警告,正如 Mchl 所指出的,这些是笛卡尔积,而不是典型的连接。

于 2010-12-20T13:54:38.453 回答
0

正如 Mchl 在评论UNION中所建议的那样,解决方案是。

于 2011-01-05T15:40:52.407 回答