【发布时间】:2015-03-13 15:23:05
【问题描述】:
我正在对两个表运行选择查询,并使用等号搜索匹配的条目。在我的理解中,MySQL 应该只返回与 WHERE 条件完全匹配的条目,但是它返回的条目就像我使用 LIKE 语句时一样:
任何解释为什么第一行会作为查询的结果返回?
编辑:
这是查询:
SELECT `ts`.`ticker_symbol`, `sm`.`id` AS `matchescount`, `sm`.`ticker_symbol_ids`
FROM `mk_ticker_symbols` `ts`, `mk_submissions` `sm`
WHERE `sm`.`ticker_symbol_ids` = `ts`.`id` AND `ts`.`id` = "1506"
编辑 2: 这是 SQL 小提琴: http://sqlfiddle.com/#!9/5550b/1/0
编辑 3: 这是带有 JOIN 的 SQL Fiddle: http://sqlfiddle.com/#!9/5550b/2/0
【问题讨论】:
-
我看不懂那个查询,你能把文字放在你的问题中吗?
-
您应该考虑升级到 ANSI-92 连接。 my.vertica.com/docs/6.0.x/HTML/index.htm#15163.htm
-
我没有在这个查询中一起使用
JOINs,我需要完全匹配和高性能以及保持查询简单。毫无疑问,JOINs 可以正常工作,但不清楚为什么这个查询不能正常工作。 -
我在您的
FROM子句中看到两个表,并且在您的WHERE子句中看到这两个表之间的相等性。那怎么不是JOIN? -
您正在使用逗号进行隐式内部连接:
From x, y。您能否创建一个 sql fiddle (sqlfiddle.com) 并在此处发布标记?包括您的表架构和一些示例数据