我正在处理两个数据库表。
表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
答案 0 :(得分: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"
答案 1 :(得分:0)
要让两个表中的列都使用INNER JOIN
。您甚至可以选择每个表中的哪些列。
SELECT b.*, a.nameColumn1, a.nameColumn2
FROM tableB b
INNER JOIN tableA a
ON b.prod_id = a.prod_id
.*
表示表格的所有列。
答案 2 :(得分:0)
通过子查询获取列中的值来尝试使用以下选项吗?在此示例中,项目是主表,(类别和分区)是包含名称列表的表,这些名称列表通过id
字段链接到category_id
表中的division_id
或project
。 / p>
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`