Выберите значение в столбце из подзапроса, MySQL

php mysql

81 просмотра

3 ответа

Я работаю над двумя таблицами базы данных.

Таблица Aсодержит названия многих товаров:

_id,
prod_name, 
prod_description,
...

Таблица Bимеет заметки (это продажи):

_id, 
note_num, 
prod_id, 
prod_price, 
quantity,
...

Я ищу некоторую автоматизацию в моем коде

Я хочу, чтобы у меня был такой выбор:

SELECT note_num, prod_id, (I want the prod_name from table A), prod_price 
FROM tableB 
WHERE id_ = 1

Но средство извлечения данных - это массив.

Я думаю, что что-то упустил в моем подзапросе

(SELECT prod_name FROM tableA WHERE prod_id = prod_id)

Мой вывод должен быть массивом так:

5  | Pink(with id 50) | 40.00
5  | Blue(with id 20) | 50.00
5  | Red (with id 10) | 55.50
Автор: Dinorah Tovar Источник Размещён: 08.11.2019 11:31

Ответы (3)


0 плюса

Предполагая, что ключ tableA тоже prod_id, используйте INNER JOIN

"SELECT note_num, prod_id, tableA.prod_name, prod_price 
 FROM tableB 
 INNER JOIN tableA on tableB.prod_id = tableA.prod_id 
 WHERE id_ = 1"
Автор: scaisEdge Размещён: 20.08.2016 03:49

0 плюса

Чтобы столбцы из обеих таблиц использовали INNER JOIN. Вы даже можете выбрать, какие столбцы из каждой таблицы.

SELECT b.*, a.nameColumn1, a.nameColumn2 
  FROM tableB b
  INNER JOIN tableA a 
    ON b.prod_id = a.prod_id 

.* означает все столбцы таблицы.

Автор: Alexsandro Souza Размещён: 20.08.2016 03:55

0 плюса

Пытались ли вы использовать следующую опцию, имея подзапрос для получения значения в столбце. В этом примере проект является главной таблицей, а (категория и подразделение) - это таблицы, содержащие списки имен, привязанные idполем к таблице category_idили division_idв projectтаблице.

SELECT *
, (SELECT name FROM category WHERE category.id = project.category_id) AS 'category'
, (SELECT name FROM division WHERE division.id = project.division_id) AS 'division'
FROM `project`
Автор: Stephen Размещён: 22.07.2018 02:11
Вопросы из категории :
32x32