apelsin2017
@apelsin2017
Начинающий web-программист

Как составить sql запрос?

Здравствуйте, в общем, есть проблемка, нужно объединить две таблицы в sql запросе.
1) Есть таблица с юзерами, основное поле - id
2) Есть другая таблица, в которой содержится user_id
5d90c7c8a70f9054093223.png
Нужно сделать так, что бы всё выходило в одной таблице (см. изображение), а вот как правильно составить SQL запрос, так и не понял. Может у Вас будут варианты?
  • Вопрос задан
  • 81 просмотр
Решения вопроса 2
glaphire
@glaphire
PHP developer
SELECT t1.first_name, t1.last_name, t2.value FROM table1 AS t1 JOIN table2 AS t2 ON t1.id=t2.user_id ORDER BY t1.id ASC
Ответ написан
l3ftoverz
@l3ftoverz
Люблю Финский металкор
В обычном SELECT можно выбирать из нескольких таблиц.

Schema
CREATE TABLE `users` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`first_name` VARCHAR(50) NOT NULL COLLATE 'utf8_unicode_ci',
	`last_name` VARCHAR(50) NOT NULL COLLATE 'utf8_unicode_ci',
	PRIMARY KEY (`id`)
)
COLLATE='utf8_unicode_ci'
ENGINE=InnoDB;

CREATE TABLE `user_values` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`user_id` INT(11) NOT NULL,
	`value` VARCHAR(255) NOT NULL COLLATE 'utf8_unicode_ci',
	PRIMARY KEY (`id`)
)
COLLATE='utf8_unicode_ci'
ENGINE=InnoDB;

INSERT INTO `users` VALUES
    (null, 'One', 'One'),
    (null, 'Two', 'Two'),
    (null, 'Three', 'Three');
    
INSERT INTO `user_values` VALUES
    (null, 1, 'Test 1'),
    (null, 2, 'Test 2'),
    (null, 3, 'Test 3');


Запрос:
SELECT users.*, user_values.value FROM users, user_values WHERE users.id = user_values.user_id


Результат:
5d90d02a725ba858871602.png
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы