Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MySQL中选择外键限制_Mysql - Fatal编程技术网

在MySQL中选择外键限制

在MySQL中选择外键限制,mysql,Mysql,我有两张桌子。Products and Products-sub.我想展示每种产品的所有可用颜色,并提供相应的图片 因此,我的产品表包含: 身份证、姓名、描述 我的产品子表包含: id,父id,颜色,图片 我想选择一个产品的所有颜色和图片,并显示在页面上。但我不想在同一页上显示所有产品 select p.name, s.color, s.pic, p.id from products-sub s inner join products as p on p.id = s.parentID

我有两张桌子。Products and Products-sub.我想展示每种产品的所有可用颜色,并提供相应的图片

因此,我的产品表包含:

身份证、姓名、描述

我的产品子表包含:

id,父id,颜色,图片

我想选择一个产品的所有颜色和图片,并显示在页面上。但我不想在同一页上显示所有产品

select p.name, s.color, s.pic, p.id
from products-sub s
    inner join products as p on p.id = s.parentID

这是我当前的查询,我需要50个唯一的s.parentID。

一个解决方案是使用具有限制的子查询在父表上联接,例如


如果您想要50种产品,请使用子查询:

select p.name, s.color, s.pic, p.id 
from products_sub s inner join
     (select p.*
      from products p
      limit 50
     ) p
     on p.id = s.parentID;

当然,这假设所有产品都至少有一个子项。

您的问题是什么?如何限制唯一外键。。。就像我想要一个产品的所有颜色,但我想要50个唯一的产品你可以在子查询中加入一个限制:join SELECT*FROM products limit 50p@shmosel你是个救生员。我应该删除这个问题吗?或者你把答案贴出来,我会记下来你也有正确的答案。但是shmosel先告诉我的。没有不愉快的感觉,兄弟。谢谢你,顺便说一句
select p.name, s.color, s.pic, p.id 
from products_sub s inner join
     (select p.*
      from products p
      limit 50
     ) p
     on p.id = s.parentID;