JOIN SQL не работает, когда таблица соединения пуста - PullRequest
0 голосов
/ 19 сентября 2019

Я работаю над проектом, в котором для пользователя существуют данные из нескольких таблиц, но если пустая одна таблица из любой из них, то SQL возвращает пустые данные, даже если существуют другие данные таблиц, как показано ниже SQL

$id = 40;
SELECT * 
  FROM players a
  JOIN pitcher b 
    ON a.id = b.user_id 
  JOIN outfield_position c 
    ON a.id = c.user_id
  JOIN infield_position d
    ON a.id = d.user_id
  JOIN defensive_statistics e
    ON a.id = e.user_id
  JOIN career f
    ON a.id = f.user_id
 WHERE a.id = $id

, например, если$outfield_position таблица пуста, тогда SQL возвращает пустой массив, но иногда, может быть, данные здесь, что я могу сделать, если данные, доступные или недоступные любым способом, могут работать?

Спасибо

1 Ответ

0 голосов
/ 19 сентября 2019

Используемое по умолчанию соединение - внутреннее соединение, и как уже объяснено здесь соединения .Вывод в этом случае будет пересечением таблиц, с которыми он соединен, поэтому, если какая-либо таблица не имеет никакого значения, пересечение даст пустой результат.

Вы можете попробовать с LEFT OUTER JOIN или FULL OUTER JOIN,в левом внешнем соединении, если данные присутствуют в $players, будет отображаться значение. Если вы не уверены в данных, полное внешнее объединение выдаст все результаты из всех таблиц.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...