从具有相同条件的多个表中选择,避免歧义错误
-
11-10-2019 - |
题
我该怎么做这样的事情,但要避免错误 column common_reference is ambiguous
?我知道这很模棱两可,我想从table_one中选择所有的common_reference的结果,而table_two也是如此。
SELECT * FROM table_one, table_two WHERE common_reference = 42
这显然是行不通的,那么我该如何使用子征服来实现我的需求?
解决方案 4
正如MCHL在评论中的建议 UNION
是解决方案。
其他提示
从...开始...
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
NB:正如MCHL所指出的,公平的警告是笛卡尔产品,而不是典型的加入。
不隶属于 StackOverflow