Я работаю над запросом SQL, но не работаю с полным внешним соединением - PullRequest
0 голосов
/ 11 мая 2019

Я хочу работать на 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;

1 Ответ

1 голос
/ 11 мая 2019

Некоторые базы данных (такие как 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 это число, а не строка.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...