Как объединить 2 таблицы из разных баз данных с не равными - PullRequest
0 голосов
/ 30 сентября 2019

я хочу объединить 2 таблицы из разных баз данных.

например, у меня есть table1 и table2.

в результате я хочу взять table2 данных, которыене существует в table1.

table1

name     langid
name1    en
name1    no
name2    en
name3    en

table2

name     langid
name1    en
name1    id
name1    no
name2    en

, поэтому результат должен быть таким:

результат, что я хочу

name     langid
name1    en
name1    no
name1    id
name2    en
name3    en

код, который я пытаюсь

select p66.language_string_text_id, p66.language_string, p66.language_id
FROM project66.languagestrings p66
JOIN wisehouse.languagestrings wh 
ON p66.language_string_text_id != wh.language_string_text_id
GROUP BY p66.language_string_text_id, p66.language_id

, но этот код не работает.

Ответы [ 4 ]

0 голосов
/ 30 сентября 2019
SELECT `DB1`.`table`.`id` , `DB1`.`table`.`name` 
FROM `DB1`.`table` 
JOIN `DB2`.`table2` ON `DB1`.`table`.`id` = `DB2`.`table2`.`parent`
0 голосов
/ 30 сентября 2019

Вы можете просто сделать что-то вроде ниже

select p66.language_string_text_id, p66.language_string, p66.language_id
FROM project66.languagestrings p66 
WHERE p66.language_string_text_id NOT IN 
(SELECT wh.language_string_text_id FROM wisehouse.languagestrings wh) 
GROUP BY p66.language_string_text_id, p66.language_id
0 голосов
/ 30 сентября 2019

, если два db находятся на одном и том же сервере db, который вы можете попробовать использовать aleft join, где не совпадают

, предполагая, что project66.languagestrings - это table2 (тот, который не совпадает) и wisehouse.languagestrings the table1

  select p66.language_string_text_id, p66.language_string, p66.language_id 
  FROM project66.languagestrings p66
  LEFT JOIN wisehouse.languagestrings wh  ON p66.language_string_text_id = wh.language_string_text_id
      and p66.language_id = wh.language_id
  WHERE wh.language_string_text_id is null 
0 голосов
/ 30 сентября 2019

Вам нужно UNION, которое удалит дубликаты, а не объединение:

select name, langid from table1
union
select name, langid from table2

См. Демоверсию . Результаты:

| name  | langid |
| ----- | ------ |
| name1 | en     |
| name1 | no     |
| name1 | id     |
| name2 | en     |
| name3 | en     |
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...