Как я могу сделать INNER JOIN ON таблицы с двумя разными таблицами SQL - PullRequest
0 голосов
/ 19 сентября 2019

у меня есть три таблицы ITEM_UNT, ITEM, UNIT Как мне сделать INNER JOIN для ITEM_UNT С ITEM И UNIT Я использовал это утверждение и не работает:

SELECT
  ITEM_UNT.ITEM_NO, ITEM_UNT.ITEM_ID,ITEM_UNT.UNIT_NO,UNIT.UNIT_NO,
  UNIT.UNIT_NAME,ITEM.ITEM_ID, ITEM.ITEM_NAME
FROM ITEM_UNT,UNIT
INNER JOIN UNIT ON UNIT.UNIT_NO =  ITEM_UNT.UNIT_NO 
INNER JOIN ITEM ON ITEM.ITEM_ID =  ITEM_UNT.ITEM_ID

Ответы [ 4 ]

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

Я понятия не имею, что означает «не работает», но вы можете, по крайней мере, написать запрос в соответствии с синтаксисом запроса MS Access.Это будет выглядеть так:

SELECT ITEM_UNT.ITEM_NO, ITEM_UNT.ITEM_ID, ITEM_UNT.UNIT_NO, UNIT.UNIT_NO,
       UNIT.UNIT_NAME, ITEM.ITEM_ID, ITEM.ITEM_NAME
FROM (ITEM_UNT INNER JOIN
      UNIT
      ON UNIT.UNIT_NO =  ITEM_UNT.UNIT_NO 
     ) INNER JOIN
     ITEM
     ON ITEM.ITEM_ID =  ITEM_UNT.ITEM_ID;

Я также удалил повторную ссылку ITEM.

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

Пожалуйста, попробуйте следующее:

Вариант 1:

select iu.item_no,
       iu.item_id,
       iu.unit_no,
       u.unit_no,
       u.unit_name,
       i.item_id,
       i.item_name
from   item_unt iu
inner  join unit u
on     u.unit_no = iu.unit_no
inner  join item i
on     i.item_id = iu.item_id;

Вариант 2:

select iu.item_no,
       iu.item_id,
       iu.unit_no,
       u.unit_no,
       u.unit_name,
       i.item_id,
       i.item_name
from   item_unt iu,
       unit     u,
       item     i
where  u.unit_no = iu.unit_no
and    i.item_id = iu.item_id;

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

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

Не следует смешивать разделенный запятыми список таблиц и явное предложение JOIN

SELECT  ITEM_UNT.ITEM_NO
      , ITEM_UNT.ITEM_ID
      , ITEM_UNT.UNIT_NO
      , UNIT.UNIT_NO
      , UNIT.UNIT_NAME
      , ITEM.ITEM_ID
      , ITEM.ITEM_NAME
FROM ITEM_UNT
INNER JOIN UNIT ON UNIT.UNIT_NO =  ITEM_UNT.UNIT_NO 
INNER JOIN ITEM ON ITEM.ITEM_ID =  ITEM_UNT.ITEM_ID
0 голосов
/ 19 сентября 2019

У вас есть таблица единиц дважды без псевдонима ... попробуйте

SELECT ITEM_UNT.ITEM_NO, ITEM_UNT.ITEM_ID,ITEM_UNT.UNIT_NO,UNIT.UNIT_NO, UNIT.UNIT_NAME,ITEM.ITEM_ID, ITEM.ITEM_NAME
FROM ITEM_UNT
INNER JOIN UNIT ON UNIT.UNIT_NO =  ITEM_UNT.UNIT_NO 
INNER JOIN ITEM ON ITEM.ITEM_ID =  ITEM_UNT.ITEM_ID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...