gpt4 book ai didi

mysql - SQL 查询协助 - 左连接意外结果

转载 作者:行者123 更新时间:2023-11-29 23:19:00 25 4
gpt4 key购买 nike

我有以下 2 个疑问:

$sql = "SELECT *
FROM ultrait_wpl_properties
LEFT JOIN ultrait_wpl_property_types
ON ultrait_wpl_properties.property_type = ultrait_wpl_property_types.id
ORDER BY ultrait_wpl_properties.id ";

$sql2 = "SELECT *
FROM ultrait_wpl_properties, ultrait_wpl_property_types
WHERE ultrait_wpl_properties.property_type = ultrait_wpl_property_types.id
ORDER BY ultrait_wpl_properties.id";

出于某种奇怪的原因,当输出 ID 时,有些 ID 是重复的?通过我的重新整理,这些查询应该从第一部分的表中获取所有内容,并根据 WHERE 条件连接第二个表。

<property><id>13</id></property>
<property><id>6</id></property>
<property><id>6</id></property>
<property><id>6</id></property>
<property><id>6</id></property>
<property><id>7</id></property>

这可能有点不清楚,但由于某种原因,我得到了重复的 ID,我真正想要的只是能够访问链接到第二个表中的 ID 的属性类型。

我已经在 phpMyAdmin 中测试了这两个查询,它们产生了所需的结果,但是当我在 php 脚本中使用这些查询时,它们返回了意外的结果。

最佳答案

您将在表 ultrait_wpl_properties 中为每一行获取一行。您还期待什么?如果每种类型只有一条记录,那么您将必须相应地重写查询。您从两个表中选择 *。但这只是您需要的类型 ID 吗?那么为什么要加入这些表呢?

获取所有类型 ID:

select id from ultrait_wpl_property_types;

获取表ultrait_wpl_properties中的所有类型ID:

select distinct property_type from ultrait_wpl_properties;

获取 ultrait_wpl_properties 中类型的所有类型数据:

select * from ultrait_wpl_property_types
where id in (select property_type from ultrait_wpl_properties);

关于mysql - SQL 查询协助 - 左连接意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27506742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com