【发布时间】:2018-12-21 02:59:42
【问题描述】:
这已在下面自我回答:
对不起各位,我的查询和你的查询都没有错,这只是我在读取数据时犯的愚蠢错误,我没有与第二个表相关的任何数据,所以它是空的。
我在连接表以从多个表中获取一些结果时遇到问题。我有多个表没有这样的关系:
订单:
Id . Name
---------
1 . abc
2 . def
订单详情
Id . OrderId . Value
---------------------
1 . 1 . 35
2 . 1 . 24
3 . 2 . 45
我想从OrderDetail得到一些结果,但条件必须在Order,像这样:
SELECT od.*
FROM Order o, OrderDetail od
WHERE o.id = od.OrderId AND o.name = 'abc';
我希望结果会是这样的
OrderDetail
Id . OrderId . Value
1 . 1 . 35
2 . 1 . 24
但我没有从结果中得到任何结果,但如果我运行;
SELECT od.*
FROM Order o, OrderDetail od
WHERE o.id = od.OrderId;
我仍然得到整个结果,我的 2 个表彼此没有任何关系。
【问题讨论】:
-
请提供minimal reproducible example--我们可以剪切、粘贴和运行。 PS One 不需要知道 FK 或任何其他约束即可查询。 PS“我需要第二张表中的结果与第一张表的条件”(来自您的评论)不清楚。使用足够多的单词和句子以及对部分示例的引用以保持清晰。
-
Bad habits to kick : using old-style JOINs - 旧式 逗号分隔的表格列表 样式已替换为 ANSI 中的 proper ANSI
JOIN语法-92 SQL 标准(25 多年前),不鼓励使用它 -
ANSI SQL 标准仍然包括逗号分隔的隐式连接 - 但不要使用它们!