我怎样才能做这样的事情但避免错误column common_reference is ambiguous
?我知道这是模棱两可的,我想从 table_one 中选择 common_reference 的所有结果,并且 table_two 相同。
SELECT * FROM table_one, table_two WHERE common_reference = 42
这显然是行不通的,那么如何使用子查询来实现我所需要的呢?
我怎样才能做这样的事情但避免错误column common_reference is ambiguous
?我知道这是模棱两可的,我想从 table_one 中选择 common_reference 的所有结果,并且 table_two 相同。
SELECT * FROM table_one, table_two WHERE common_reference = 42
这显然是行不通的,那么如何使用子查询来实现我所需要的呢?
从...开始...
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
SELECT table_one.* FROM table_one, table_two WHERE table_one.common_reference = 42
如果您的 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 所指出的,这些是笛卡尔积,而不是典型的连接。
正如 Mchl 在评论UNION
中所建议的那样,解决方案是。