我该怎么做这样的事情,但要避免错误 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所指出的,公平的警告是笛卡尔产品,而不是典型的加入。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top