Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.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
SQL数据库查询_Sql - Fatal编程技术网

SQL数据库查询

SQL数据库查询,sql,Sql,我需要以下问题的帮助。 我有以下计划: 书籍(投标、标题、价格) 人员(pid、姓名、zipcode) 订单(pid、投标、数量) 所需查询: 查询应返回pid=1的所有客户购买的所有书籍(澄清-只有当pid=1的所有人至少从本书中购买了一本书时,本书才会显示在结果中)这是所有三个表的问题: SELECT b.* FROM book b INNER JOIN order o ON (b.bid = o.bid) INNER JOIN person p ON (p.pid = o.pid

我需要以下问题的帮助。 我有以下计划:

书籍(投标、标题、价格) 人员(pid、姓名、zipcode) 订单(pid、投标、数量)

所需查询:

查询应返回pid=1的所有客户购买的所有书籍(澄清-只有当pid=1的所有人至少从本书中购买了一本书时,本书才会显示在结果中)

这是所有三个表的问题:

SELECT b.*
FROM book b INNER JOIN order o ON (b.bid = o.bid)
     INNER JOIN person p ON (p.pid = o.pid)
WHERE p.pid = 1;

你的问题没有道理。您无法知道“如果pid=1的所有人”都购买了一本书,因为订单不区分人,只区分pid。您是否只想要pid=1购买的所有书籍?请显示您尝试过的SQL语句。请使用正确的联接语法。逗号表示“交叉连接”。用户“内部连接”。@GordonLinoff:Work habits:-)OP的
至少购买了一本
似乎暗示一个人可能会购买同一本书的多本。在这种情况下,您可能需要添加
DISTINCT
,以排除重复条目。