SQL 视图中的唯一列

Unique Columns in SQL Views

在我的数据库中,我有一个 table 包含完整的产品列表,另一个 table 在 x 轴上包含相同的产品列表,客户列表在y 轴,其中每个产品的值可以是 1 或 0,具体取决于该客户是否可以查看该产品。我的 SQL 看起来像这样:

SELECT products.product_code, products.product_type, products.product_category, products.product_title, products.product_description
FROM product_lists
INNER JOIN products
ON product_lists.product_code=products.product_code
WHERE product_lists.customer="1"
ORDER BY products.product_code

我的问题是我想为每个客户创建此结果的视图以用作该客户的产品 table,但是当我创建它时我收到消息 "This table does not contain a unique column. Grid edit, checkbox, Edit, Copy and Delete features are not available." 即使product_code 字段在产品 table 和 product_lists table.

中都设置为主键

如何创建一个 join/view,它使用 table(s) 中的主键?简而言之,我希望 product_code 字段成为我视图的主键。

谢谢!

我认为问题出在join。您可以通过将条件移动到 where 子句来解决此问题。 MySQL 不允许在 from 中使用子查询,但在 where 中可以:

SELECT p.product_code, p.product_type, p.product_category, p.product_title, p.product_description
FROM products p
WHERE EXISTS (SELECT 1
              FROM product_lists pl
              WHERE pl.product_code = p.product_code AND
                    pl.customer = 1
             )
ORDER BY p.product_code;