gpt4 book ai didi

mysql - 从多个表中查询,但 PMK 并不总是存在于所有表中

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

我当前的查询是:

select 
item_description.fk_i_item_id, item_description.s_title, item_description.s_description,
category_description.s_slug,
item_resource.s_path, item_resource.s_extension, item_resource.pk_i_id
FROM
item, item_description, category_description, item_resource

WHERE
item.pk_i_id = item_description.fk_i_item_id
AND
category_description.fk_i_category_id = 96
AND
item.pk_i_id = item_resource.fk_i_item_id

GROUP BY item.pk_i_id
ORDER BY item.pk_i_id DESC

基本上这些表存储一些项目的信息(可选信息存储在 item_resource 中),我试图从所有这 4 个表中获取所有有用的信息,当项目具有 < em>资源(item_resource中的可选信息),但如果该项目没有资源,则该项目将不会出现在结果中。

所以我需要一个返回该项目的结果,无论它是否在 item_resource 表上有信息。

最佳答案

So I need a result where the item is returned too no matter if it has info on the item_resource table or not.

然后考虑执行OUTER JOIN,并且很可能执行LEFT OUTER JOIN,而不是执行INNER JOIN。当您说FROM item, item_description,category_description, item_resource时,您当前正在执行的是内部联接以及旧式联接语法。您应该考虑使用 ANSI 风格的 JOIN 语法。

此外,由于您没有执行任何聚合,因此不需要 GROUP BY item.pk_i_id

我的意思如下:

select 
item_description.fk_i_item_id, item_description.s_title,
item_description.s_description,
category_description.s_slug,
item_resource.s_path, item_resource.s_extension, item_resource.pk_i_id
FROM
item
LEFT JOIN item_description ON item.pk_i_id = item_description.fk_i_item_id
LEFT JOIN category_description ON category_description.some_column = item.pk_i_id
AND category_description.fk_i_category_id = 96
LEFT JOIN item_resource ON item.pk_i_id = item_resource.fk_i_item_id
ORDER BY item.pk_i_id DESC;

关于mysql - 从多个表中查询,但 PMK 并不总是存在于所有表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42401051/

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