2017-02-13 4 views
0

У меня есть 2 таблицы с данными, как показано ниже: TRANSM TransD таблицы можно увидеть в приведенной нижеСинтаксис выберите в SQL

Когда я использую синтаксис, как показано ниже:

SELECT M.Kode_Project, M.Nama_Project, M.Kode_Panel, 
     M.Nama_Panel,D.Kode_Stater, 
     D.Nama_Stater1, 
     D.Tipe, D.Komponen, D.Pole, D.Amps, D.Merek, D.Qty, 
     D.IsTitipan 
FROM TransM M 
INNER JOIN TransD D 
    ON M.Kode_Project = D.Kode_Project 
     AND M.Kode_Panel = D.Kode_Panel 
WHERE (M.Kode_Project = '17-0002') 
    AND (M.Kode_Panel = 'A') 

Tables And Result

Что случилось в моем синтаксисе? Pls Help Me

+0

Там нет ничего плохого с синтаксисом (что приведет к ошибке), ваше ожидание выключено. Вы объединяете 2 идентичные записи (идентичные по условиям соединения) с четырьмя другими идентичными записями. Вы получаете декартово произведение (4 * 2 = 8). Похоже, вы можете немного уменьшить его, используя «Kode_Stater» в соединении, но это все еще не уникально. Вы должны спросить кого-то, кто знает ваши данные и таблицы, какие правильные условия соединения. – HoneyBadger

ответ

0

может быть вам нужен отличный результат (это следует удалить дубликаты строк)

SELECT DISTINCT 
      M.Kode_Project, M.Nama_Project, M.Kode_Panel, 
      M.Nama_Panel,D.Kode_Stater, 
      D.Nama_Stater1, 
      D.Tipe, D.Komponen, D.Pole, D.Amps, D.Merek, D.Qty, 
      D.IsTitipan 
    FROM TransM M 
    INNER JOIN TransD D 
     ON M.Kode_Project = D.Kode_Project 
      AND M.Kode_Panel = D.Kode_Panel 
    WHERE (M.Kode_Project = '17-0002') 
     AND (M.Kode_Panel = 'A') 
+0

, когда вы используете select select, результат будет неправильным, потому что результат будет всего 2 записи. Истинный результат должен появиться 4 записи – Keshin

+0

Затем обновите свой вопрос и добавьте реальный ожидаемый результат .. потому что неясно, что вам нужно. – scaisEdge

Смежные вопросы