Можем ли мы добавить пустую таблицу в предложении From - PullRequest
0 голосов
/ 08 апреля 2011

В моем запросе SQL из предложения есть таблица (таблица 1). Я заметил, что эта таблица пуста. Результаты моего запроса полностью нулевые. Также, если я не использую эту таблицу в предложении where и select. Что является причиной этого и как это предотвратить.

выберите ps.ProductName из productsale ps, StockTransfer dtc
где
ps.productcode = '010134600223'
и ps.productcode =

  (case when  ps.productcode=dtc.productcode then

dtc.productcode else ps.productcode конец)

Этот запрос работает нормально, если я не добавляю таблицу StockTransfer в предложение формы (если таблица StockTransfer пуста), иначе он работает нормально.

Ответы [ 2 ]

2 голосов
/ 08 апреля 2011

Зависит от того, как вы присоединились.

Если вы делаете

select * from tablea join tableb on tablea.id=tableb.id 

и tableb пусто, тогда ничего не может получиться, потому что ничего не было.

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

При левом соединении будут возвращены все данные в первой таблице и любые данные из второй таблицы, соответствующие такому

select * from tablea left join tableb on tablea.id=tableb.id

вернет вкратце все данные, кроме данных таблицы, потому что это все, что есть (но любые дополнительные поля, которые вы запрашивали у tableb, но, очевидно, данных нет, поскольку их не было)

1 голос
/ 08 апреля 2011

Вы делаете перекрестное соединение. Это означает, что для каждой строки в Table1 вы получите все строки в Table2. Таким образом, если Table1 имеет 4 строки, а Table2 имеет 2 строки, вы получите 8 строк в наборе результатов (4 * 2 = 8). Если Таблица2 содержит 0 строк, вы получите 0 строк в наборе результатов (4 * 0 = 0).

Чтобы исправить это, вам нужно добавить условие соединения.

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