我对这2个问题感到很生气,我无法解释为什么一个人返回81行而另一个人为0.有人可以帮我这个吗?
-- Working
SELECT * FROM
boat_standard_specification_items AS BoatStandardSpecificationItem JOIN standard_specification_items AS StandardSpecificationItem
ON(BoatStandardSpecificationItem.standard_specification_item_id = StandardSpecificationItem .id)
-- Not working
SELECT * FROM
`boat_standard_specification_items` AS `BoatStandardSpecificationItem` JOIN `standard_specification_items` AS `StandardSpecificationItem`
ON (`BoatStandardSpecificationItem`.`standard_specification_item_id` = 'StandardSpecificationItem.id')
我在Windows操作系统上,如果可以以任何方式提供帮助
答案 0 :(得分:3)
他们不是同一个查询。在第二个,你有:
ON (`BoatStandardSpecificationItem`.`standard_specification_item_id` = 'StandardSpecificationItem.id')
^---
请注意引号的变化。单引号在查询中定义STRING,因此您不会比较两个字段,而是将字段与字符串进行比较。
答案 1 :(得分:1)
您不能将表名放在单引号内。如果你想在它们周围放一些东西以便使它可读,请使用[和]。
答案 2 :(得分:1)
在第二个查询中
`BoatStandardSpecificationItem`.`standard_specification_item_id` = 'StandardSpecificationItem.id'
您正在将BoatStandardSpecificationItem
。standard_specification_item_id
与字符串'StandardSpecificationItem.id'
进行比较
在第一个查询中
SELECT * FROM
boat_standard_specification_items AS BoatStandardSpecificationItem JOIN standard_specification_items AS StandardSpecificationItem
ON(BoatStandardSpecificationItem.standard_specification_item_id = StandardSpecificationItem .id)
您正在将BoatStandardSpecificationItem
。standard_specification_item_id
与另一列StandardSpecificationItem .id
很明显他们会返回不同的结果
答案 3 :(得分:0)
看起来那个“不工作”的人正在使用一个文字字符串来加入(注意单引号)。您的查询的其余部分使用反向标记,因此请尝试一次。
答案 4 :(得分:0)
它们是不同的查询。第二,你试图将字段与你可能不想要的字符串匹配。
(`BoatStandardSpecificationItem`.`standard_specification_item_id` = 'StandardSpecificationItem.id')
您可以详细了解Join