gpt4 book ai didi

php - 我正在处理 SQL 查询,但没有处理完全外连接

转载 作者:行者123 更新时间:2023-11-29 09:43:47 25 4
gpt4 key购买 nike

我想从事 SQL 工作。缺少内部联接无法正常工作。我正在使用两个表获取“city_id”字段上的数据这些表代码,所以请帮助我

inventory
==========================================
inventory_id | city_id | title |is_enabled
==========================================
1 | 1 | abc | 1
2 | 1 | bcd | 1



cities
====================================
city_id | city | title
===================================
1 | delhi | abc
2 | nodia | bcd


SELECT * FROM inventory i

INNER JOIN cities c

ON i.city_id = c.city_id

WHERE i.is_enabled = 1

ORDER BY i.inventory_id DESC LIMIT 10;

最佳答案

某些数据库(例如 MS Access 和 MySQL)不支持 FULL OUTER JOIN

但是,很少需要FULL OUTER JOIN——并且在使用表之间定义的键时几乎不需要。结构良好的数据库具有具有适当值的键。

我怀疑 INNER JOIN 可以满足您的要求:

SELECT . . .   -- list out the columns you want
FROM inventory i INNER JOIN
cities c
ON i.city_id = c.city_id
WHERE i.is_enabled = 1
ORDER BY i.inventory_id DESC
LIMIT 10;

此查询假设 inventory 行具有有效的 city_id。如果某些值为 NULL(允许的、不匹配的值),您可以使用 LEFT JOIN 代替。

其他一些注意事项:

  • 明确列出您想要的列。特别是,重复的列名可能会出现问题。
  • 使用表别名,使查询更易于编写和阅读。
  • 限定所有列名称。我猜测 is_enabled 来自 inventory。我不应该猜测。
  • 不要在数字常量两边加上单引号。我猜测 is_enabled 是一个数字,而不是字符串。

关于php - 我正在处理 SQL 查询,但没有处理完全外连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56090117/

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