我想研究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;
答案 0 :(得分:1)
某些数据库(例如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
是数字,而不是字符串。