Получение дубликатов записей с использованием SQLIte

У меня есть таблица под названием Organization которая выглядит так ...

Пожалуйста, смотрите Организационный стол

У меня также есть другая таблица Plant с тем же PlantID, который выглядит примерно так (на рисунке Plant_Id расположен справа).

Пожалуйста, смотрите таблицу растений

Когда я использую внутреннее соединение, чтобы получить определенную строку, я получаю одну и ту же строку, повторенную дважды. Это запрос, который я использовал ...

SELECT DISTINCT * FROM eSMAT_List INNER JOIN Organization on eSMAT_List.Plant_Id = 291320

Что я здесь не так делаю ..?

(Кроме того, я жестко закодировал 291320, потому что это значение, которое я хочу передать)

Всего 1 ответ


  1. Вы на самом деле не JOINING своим таблицам, вам нужно JOIN к общему значению ключа в обеих таблицах. (Из ваших фотографий я бы сказал, что это Organization.mainID и eSMAT_List.Plant_Id ).
  2. Вы хотите использовать предложение WHERE для фильтрации по указанному PlantID .
  3. DISTINCT не требуется, если только в вашем примере нет данных и ожидаемых результатов, которых нет в вашем посте.
  4. Кроме того, вы захотите сделать это параметризованным запросом или хранимой процедурой и передать значение id, например, @plantId INT , тогда вы будете использовать его в своем запросе, а не в жестко закодированном примере.

Ваш запрос, я думаю, должен выглядеть следующим образом:

SELECT * 
FROM  eSMAT_List 
INNER JOIN Organization 
on eSMAT_List.Plant_Id = Organization.mainID
WHERE eSMAT_List.Plant_Id = @plantId (291320 in your example) 

Есть идеи?

10000