MYSQL 一对多 : acessing the primary key from the fitst table, 不是第二个的 Fk

标签 mysql

一个mysql一对多问题:各种产品以及我在哪里销售它们。我有多种可以销售的产品,以及多个销售地点。我有一个带有主键的产品表:product_id。我有一个位置表,其中包含 PK location_id 和一个字段 Product_id 以链接到产品表。

因此,SELECT * FROM products LEFT JOIN products_id 上的位置。

我遇到了不明确的列错误。这没有道理,他们应该排队。

因此:SELECT * FROM products LEFT JOINlocations on products.product_id =locations.product_id。

这有效。

问题是:有很多产品我可以获得但目前不销售。有些产品没有位置。要创建添加位置的链接,我需要 Product_id。如果我打印出 $row['product_id'] 我将从位置表中获取产品 ID,如果未售出,则该表为空。我需要第一个表中的产品 ID。

这不可能是一个不寻常的情况。

想法?

最佳答案

您需要在 SELECT 语句中指定要使用 products 表中的 product_id。这是我正在谈论的内容的示例(SQL Fiddle):

SELECT p.product_id, p.description, p.unit_of_measure, l.location
FROM products p 
LEFT JOIN locations l on l.product_id = p.product_id

正如您所见,product_id 3 没有位置,但我仍然显示 product_id

关于MYSQL 一对多 : acessing the primary key from the fitst table, 不是第二个的 Fk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25706716/

相关文章:

Mysql ABS函数代码中出现无法解释的错误

php - 获取 Woocommerce 中带有空简短描述的所有产品 ID

MySQL 错误 : : 'Access denied for user ' root' @'localhost'

mysql - 使用 GROUP_CONCAT 查询

python - 属性错误 : 'tuple' object has no attribute 'drivername' using Flask SqlAlchemy

mysql - 如何将 MySQL 中的 bool 字段迁移到 Heroku 中的 PostgreSQL?

php - 无法获取 codeigniter 中复选框的值

php - 如果存在更新记录,否则写入新记录?

php - 如何使用PHP正确保存MYSQL表中的html内容

php - 从 PDO 准备好的语句中获取查询