SELECT *
FROM (SELECT * FROM tableA as t1 inner join tableB as t2 on t1.id=t2.some_id) as t3,
(SELECT * FROM tableC as t1 inner join tableD as t2 on t1.id=t2.some_id) as t4
WHERE t3.id=t4.id
两个t1
和t2
会冲突吗?
根据我与多家数据库供应商的经验,它们不会冲突,但是,它会不会混淆优化器,以至于在SQLite或SQL中产生错误的结果?
我有这样一个假设:在SQLite中,一个查询会给出虚假的结果。
1条答案
按热度按时间jtoj6r0c1#
不,化名不会冲突。它们仅在其各自的子查询中是已知的。
当然,查询会因为结尾的逗号而失败。一般来说,应该避免在
FROM
子句中使用逗号。* 始终 * 使用正确的,明确的,标准,可读的JOIN
语法。