получить данные на основе аналогичного значения - PullRequest
0 голосов
/ 25 декабря 2018

У меня есть две таблицы table1 и table2.

table1 имеют:

code   name
 10     ABC
 11     DEF
 12     FGH

table2 имеют:

code1  code2   code3      Buyer    
10       11      12        AAA        
12       11      10        BBB       
11       12      10        CCC        

Теперь я хочу сделать запрос SQL, которыйизвлекать code1, code2, code3, покупателя и имя code1, code2 и code3. Мой запрос SQL:

SELECT t1.name, t2.code, t2.issued, t2.balance 
FROM table1 t1, table2 t2 
WHERE t1.code = t2.code; 

, используя этот запрос SQL, имя не выбирается на основе каждого кода.Вывод идет не так.Я хочу вывод как {code1 = 10, name = ABC, code2 = 11, name = DEF, code3 = 12, name = FGH, покупатель = AAA}

Ответы [ 2 ]

0 голосов
/ 25 декабря 2018

Вам наверняка потребуются 3 соединения, как показано ниже для имен кодов c1, c2, c3 соответственно.

         Select code1,c1.name,code2
        ,c2.name,code3,c3.name,buyer
        from table2,
        table1 c1,table1 c2,table1 c3 where 
        c1.code=code1 and c2.code=code2 and 
        c3.code=code3
0 голосов
/ 25 декабря 2018

Вы должны присоединиться к таблице несколько раз с разными псевдонимами

SELECT t2.code, t2.issued, t2.balance,
       tname1.name as code1_name,
       tname2.name as code2_name,
       tname3.name as code3_name
FROM table2 t2
JOIN table1 tname1 WHERE tname1.code = t2.code1
JOIN table1 tname2 WHERE tname2.code = t2.code2
JOIN table1 tname3 WHERE tname3.code = t2.code3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...