2016-10-12 2 views
1

У меня есть два результирующие А и ВКак объединить или объединить два набора результатов в mysql?

столе выглядят так

+------+---------+------------+ 
| a_id | item no | total sold | 
+------+---------+------------+ 
| 1 |  101 |   23 | 
| 2 |  102 |   34 | 
| 4 |  405 |   54 | 
| 5 |  506 |   65 | 
| 6 |  104 |   23 | 
+------+---------+------------+ 

В таблице B выглядит следующим образом

+------+---------+----------+ 
| b_id | item no | location | 
+------+---------+----------+ 
| 1 |  101 | A1  | 
| 2 |  102 | A2  | 
| 3 |  103 | A3  | 
| 4 |  104 | A4  | 
+------+---------+----------+ 

Я хочу, чтобы добиться вывода следующего

+------+---------+------------+----------+ 
| a_id | item no | total sold | location | 
+------+---------+------------+----------+ 
| 1 |  101 |   23 | A1  | 
| 2 |  102 |   34 | A2  | 
| 4 |  405 |   54 | NULL  | 
| 5 |  506 |   65 | NULL  | 
| 6 |  104 |   23 | A4  | 
+------+---------+------------+----------+ 

Я хочу добавить столбец «РАСПОЛОЖЕНИЕ» в таблицу A и отобразить t его значение местоположения для каждого элемента нет, который присутствует в таблице B. Если ПУНКТ NO в таблице A не имеет значения местоположения, тогда значение LOCATION должно быть NULL (т.е. EMPTY).

Поскольку я новичок, я не знаю, как его достичь. Я пытался использовать UNION, но я не смог написать правильный запрос

+1

нет, вы не хотите союза. вы хотите [присоединиться] (https://en.wikipedia.org/wiki/Join_ (SQL)). –

+0

Как HTML-код относится к MySQL? Вы, вероятно, просто нуждаетесь в регулярном внешнем соединении, объединение - это совершенно другая вещь. –

+0

Я не знаю, как публиковать результаты в табличном формате в переполнении стека, поэтому я просто использовал HTML-код для правильного отображения данных в таблице –

ответ

1

Что вы ищете - это Join. В частности, Left Outer Join, чтобы получить все результаты из вашей левой таблицы (TableA) и только те результаты из вашей правой таблицы (TableB), которые соответствуют.

При определении объединения, используйте пункт ON сказать БД, какие поля связаны между таблицами:

SELECT 
    a_id, 
    a.itemno, 
    a.totalsold, 
    b.location 
FROM 
    tableA 
    LEFT OUTER JOIN tableB ON 
     tableA.itemno = tableB.itemno 
+0

Его работа. благодаря –

1

Вы должны использовать LEFT JOIN (слева потому что вы хотите получить аннулирует, когда запись не найдено во второй таблице)

SELECT a.a_id, a.itemno, a.totalsold, b.location 
    FROM tableA AS a LEFT JOIN tableB AS b ON 
    a.itemno = b.itemno 
Смежные вопросы