- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为 get tp.address_from
和 tp.address_to
构建一个 View ,但我无法正常工作。这是我正在处理的查询:
SELECT
`tp`.`address_from` AS `address_from`,
`tp`.`address_to` AS `address_to`,
`bk`.`firstname` AS `firstname`
FROM
(
`book` `bk`
LEFT JOIN `travel_point` `tp` ON(
(
(`bk`.`tp_from` = `tp`.`id`)
AND(`bk`.`tp_to` = `tp`.`id`)
)
)
)
但它不起作用,因为我总是得到一组空结果,如下图所示:
在 book
和 travel_point
表之间存在两次相同的关系:tp_from
是 book
上的 FK,并且tp_to
是一个 FK,并且都指向 travel_point.id
也许这就是问题所在,但我还没有看到它。无论如何,我将 SQL 模式保留在 this link 中。因为有点大,对此表示歉意,但我提供了与测试目的相同的数据。
我做错了什么?
PS:您可以查看我留下的图像上的数据,正如我所说,数据是共享的
最佳答案
LEFT JOIN
特别为左侧表的每个行返回一行;如果没有ON
然后匹配NULL
在右侧表特有的列中返回。对于为每个 book
返回一行的选择行,带有NULL
地址 id
不同于tp_from
或tp_to
。如果这不是您想要的,请不要使用 LEFT JOIN
。你没有说出你真正想要什么,所以很难给你其他建议。大概只是使用 JOIN
.
除了你的NULL
问题:
猜测您的表格的含义,您的查询(在删除 LEFT
后)列出了往返预订的名字和相应的端点地址。旅行点似乎不太可能有出发地址和目的地地址。难道真的只有旅行点address
? (但也许旅行点是行程中的一个链接,它知道其前/自和后/目的地地址。)您似乎也不太可能两次列出同一旅行点的地址。对于预订的名字和端点地址,您需要加入 travel_point
两次,每个端点一次。 (就像在不同查询的另一个答案中一样。)
SELECT tpf.address AS address_from, tpt.address AS address_to, bk.firstname
FROM book bk
JOIN travel_point tpf ON bk.tp_from = tpf.id
JOIN travel_point tpt ON bk.tp_to = tpt.id
关于mysql - 从 Travel_point 表中获取 tp.address_from 和 tp.address_to,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24937626/
我正在为 get tp.address_from 和 tp.address_to 构建一个 View ,但我无法正常工作。这是我正在处理的查询: SELECT `tp`.`address_fr
我是一名优秀的程序员,十分优秀!