无法创建 SQL 个查询 - 初学者

Trouble creating SQL queries - Beginner

我已经为一些大学作业创建了 linked ERD,但 SQL 是一直没有坚持下去的一件事。我需要列出所有进行了多次购买的会员的 ID、名字、姓氏、电话和地址,确保在检索所有会员的详细信息时添加适当的别名。

ERD link - [1]: https://i.stack.imgur.com/AD6C0.png

我的尝试如下。这个对吗?我可以为每个成员详细信息添加单独的别名吗?如果购买不是会员的一部分,我可以使用“WHERE purchaseTotal”吗 table?

SELECT (memberId AS 'ID', memberFirstName AS 'First Name', memberLastName AS 'Last Name',
        memberAddress AS 'Address', memberPhone AS 'Phone')
FROM Member
WHERE purchaseTotal > 1;

您是 运行 名为 purchaseTotal 的列,但您没有在正确的 table 中查找它。 purchaseTotal 属于 Purchases table.

如果您想从 purchaseTotal 列中获取值,您应该使用正确的 table。

select * from purchases where purchaseTotal > 1;

或者你应该使用“加入”:

SELECT *
FROM Member
INNER JOIN Purchases ON Purchases.memberID=Member.memberID
WHERE Purchases.purchaseTotal > 1;

用非常基本的术语来说,您只能在查询中使用该列,该列存在于被查询的 table 中。

所以在上面的查询中,您使用的是 purchaseTotal 列,但在 Member table 中不可用。所以你还需要添加Purchases table。

查询应该是

SELECT Members.memberId AS 'ID', memberFirstName AS 'First Name', memberLastName AS 'Last Name', memberAddress AS 'Address', memberPhone AS 'Phone'
FROM Purchases
LEFT JOIN Members ON Purchases.memberId = Members.memberId
WHERE purchaseTotal > 1;

:

对于两个 table 中共有的所有列,您需要指定要从哪个 table 中显示该列。例如,Members.memberId