Объединение двух таблиц в MySQL с именем столбца diff

Я не очень хорошо разбираюсь в соединении таблиц в mysql, и я все еще учусь, поэтому я хотел спросить, когда соединяю две таблицы....

У меня есть 2 таблицы. Итак, для первой таблицы я хочу объединить 2 ее столбца (идентификатор и путь) во второй таблице.

Но во второй таблице нет идентификатора имени столбца и пути, есть путь и значение имени столбца. Поле столбца pathid совпадает с идентификатором.

это выглядит так.

первая таблица

| id | path        | 
---------------------
|  1 | country/usa |     
|  2 | country/jpn |    
|  3 | country/kor |

второй стол

| pathid | value  |
-------------------
|  3     | 500    |    
|  1     | 10000  |    
|  2     | 2000   |

Итак, в первой таблице указано, что для США идентификатор равен 1, для Японии — 2, для Кореи — 3. А в таблице указано, что для pathid нет. 3 (который является идентификатором для Кореи) значение равно 500 и так далее с другими.

Я хочу, чтобы это выглядело так. Таким образом, путь будет объединен во второй таблице с соответствующим значением. Как я могу сделать это на mysql? Благодарю вас

Желаемый результат

| id | path         | value  |
------------------------------
|  1 | country/usa  | 10000  |    
|  2 | country/jpn  | 2000   |    
|  3 | country/kor  | 500    |

person hearmeroar    schedule 12.09.2013    source источник
comment
SELECT...FROM firstTB a INNER JOIN secondTB b ON a.id = b.pathID -- простое соединение.   -  person John Woo    schedule 12.09.2013


Ответы (1)


Вы можете объединять столбцы независимо от имени столбца, если тип данных совпадает.

SELECT id, path, value
FROM firstTable, secondTable
WHERE id = pathid

Если у вас одинаковые имена столбцов в обеих таблицах, вам необходимо уточнить имя, используя псевдоним. Скажем, имена столбцов для id были одинаковыми в обеих таблицах, тогда всякий раз, когда вы используете id, вы должны указывать, на какую таблицу вы ссылаетесь. в противном случае он будет жаловаться на двусмысленность.

SELECT s.id, path, value
FROM firstTable f, secondTable s
WHERE f.id = s.pathid

Обратите внимание, что я пропустил s. для других столбцов в select, это будет работать до тех пор, пока во второй таблице нет столбцов с таким же именем.

person Praveen Lobo    schedule 12.09.2013
comment
Спасибо, Лобо! Первое утверждение как раз то, что мне нужно! Спасибо! :D - person hearmeroar; 12.09.2013
comment
добро пожаловать. потратьте некоторое время на изучение различных типов соединений. хорошо стоит времени я обещаю. - person Praveen Lobo; 12.09.2013
comment
Еще одна вещь, на пути, так как путь похож на страну/США, есть ли способ, где я могу вывести только США? - person hearmeroar; 12.09.2013
comment
Да, вы должны использовать substring(path,9). См. строковые функции в руководстве. - person Praveen Lobo; 12.09.2013