Как я могу заменить в SELECT оператор из одной таблицы в другую? - PullRequest
0 голосов
/ 27 сентября 2019

Я пытаюсь ВЫБРАТЬ две таблицы заменить из таблицы A атрибут значения из таблицы B. Важным для меня является то, что таблицы не обновляются.

table_A

id  category_id filename
1   2   apple
2   12  banana
3   453 pineapple

table_B

id  category_color  category_type
2   red fruit
12  yellow  fruit
453 brown   fruit

MYSQL-версия: mysql Ver 14.14 Distrib 5.5.62, для debian-linux-gnu (x86_64) с использованием readline 6.3

mysql> SELECT * FROM table_A INNER JOIN table_B ON table_A.category_id = table_B.id SET table_A.category_id = category_name;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET table_A.category_id = category_name' at line 1

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

output

id  category_id filename
1   red apple
2   yellow  banana
3   brown   pineapple

1 Ответ

1 голос
/ 27 сентября 2019

SET не принадлежит запросу SELECT.Вместо этого обратитесь к значению из второй таблицы в списке полей:

SELECT A.id, B.category_name, A.filename 
FROM table_A A 
INNER JOIN table_B B ON A.category_id = B.id

Вывод

id  filename    category_name
1   apple       red
2   banana      yellow
3   pineapple   brown

Демонстрация на dbfiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...