2017-02-20 35 views
1

У меня есть таблица A с клиентами и таблица P с продуктами.Вставить идентификатор для получения данных из разных таблиц в SQL

У меня также есть таблица C, которая представляет собой приобретенный продукт клиентами.

В таблице полей являются следующие:

A (Customers)

user_id 
Name 
Surname 

P (продукты)

product_id 
price 
product name 

C (закупленные продукты)

id 
product_id 
user_id 
quantity 
date 

C является ссылкой «многие-ко-многим» между A и P.

Предположим, что сегодня клиент под названием «Боб Райт» купил продукт под названием «Beautiful_magazine». Предположим, что и клиент, и продукт уже находятся в базе данных.

Как сделать запись в таблице C?

Я знаю, что я должен использовать вставку в оператор select, но мне приходится сталкиваться с трудным временем, потому что я должен получить форму идентификатора пользователя A и идентификатор продукта P и затем поместить их в новую строку на C вместе с функцией NOW() и числовые значения, представляющие цену. Я не могу этого сделать, потому что я новичок.

Подсказка?

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

Предположим:

user_id: 890 Имя: Боб Фамилия: Райт

product_id: 4897 цена: 5,90 product_name: Beautiful_magazine

Мне нужно, чтобы создать новую строку в таблице C следующим образом:

ID (автоинкрементальный) product_id: 4897 u ser_id: 890 количество: 1 дата: «2017-2-20»

Очевидно, что product_id и user_id от Р и А должен быть получить через оператора выбора, используя где заявление.

+1

Tag СУБД вы используете. Добавьте пример данных таблицы и ожидаемый результат - все также форматированный текст. Также покажите нам свою текущую попытку запроса. – jarlh

+0

'Я должен получить форму идентификатора пользователя A и форму идентификатора продукта P' - Обычно он доступен в коде, который создаст запись «покупка» ...поэтому вам нужно будет показать нам код, который окружает это также ... –

ответ

0

Если вы передаете данные в из приложения, используйте procedure (при условии, что приросты идентификатор авто)

CREATE PROCEDURE `AddSale` (IN ProdID INT, IN UserID INT, IN Qty INT) 
BEGIN 
    insert into TableC (Product_ID, User_ID, Quantity, Date) 
    values (ProdID, UserID, Qty, Now()); 

END 

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