Sheraz M Ответов: 2

Нужна справка по SQL - запросу: невозможно получить необходимые данные из двух таблиц


у меня есть два стола:

Таблице table_1
tra_id, lot_no, общее, деталь


Table_2
sup_id, tra_id, дата

Мне нужны данные из обеих таблиц, которые есть:
lot_no, общее, деталь, дата

данные будут основаны на sup_id, например, если поставщик один, то он должен показывать данные только поставщика 1

Что я уже пробовал:

Я попробовал это сделать:
Выберите lot_no, total, detail, date
От Table_1 , Table_2
Где таблице table_1.sup_id=2

Но он показывает дубликаты записей.

lot_no общая дата детализации

1/1 2 яблоко 18/05/18
1/2 2 апельсина 18/05/18
1/1 2 яблоко 18/05/18
1/2 2 апельсина 18/05/18

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

PIEBALDconsult

Я ожидаю , что вы хотите внутреннее соединение на tra_id, но вы не предоставили достаточно подробностей.

2 Ответов

Рейтинг:
6

Sheraz M

В качестве быстрого исправления я добавил sup_id в обе таблицы.


Рейтинг:
2

phil.o

Вы должны указать, в каком столбце находится отношение между table_1 и table_2. В вашем случае отношение находится на tra_id колонна из table_2, который является ссылкой на первичный ключ table_1:

SELECT
  a.tra_id
, a.lot_no
, a.total
, a.detail
, b.date
FROM
  table_1 AS a
  INNER JOIN table_2 AS b ON b.tra_id = a.tra_id

Есть проблема с вашим WHERE пункт: вы указали на то, что sup_id колонка как принадлежащая к table_2, хотя вы используете его в своем запросе так, как если бы он принадлежал table_1.

Надеюсь, это поможет.


Sheraz M

"Есть проблема с вашим предложением WHERE: вы указали столбец sup_id как принадлежащий table_2, хотя вы используете его в своем запросе, как если бы он принадлежал table_1."

Значит, мне нужно добавить sup_id col и в table_1, чтобы получить желаемые результаты?