我正在研究SQL查询,但不工作外部加入



我想在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是一个数字,而不是字符串。

最新更新