从具有相同条件的多个表中选择,避免歧义错误

时间:2010-12-20 13:22:51

标签: mysql ambiguity fully-qualified-naming

我该如何做到这一点,但避免错误column common_reference is ambiguous?我知道它含糊不清,我想从table_one中选择common_reference的所有结果,并且table_two相同。

SELECT * FROM table_one, table_two WHERE common_reference = 42

这显然不起作用,所以我如何使用子查询来实现我的需要呢?

4 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

答案 2 :(得分: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所说,这些是笛卡尔积,而不是典型的连接。

答案 3 :(得分:0)

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