我已經為一些大學作業創建了鏈接的 ERD,但 SQL 是一直沒有堅持的一件事。我需要列出進行多次購買的所有會員的 ID、名字、姓氏、電話和地址,確保在檢索所有會員的詳細資訊時添加適當的別名。
ERD 鏈接 - [1]: https://i.stack.imgur.com/AD6C0.png
我的嘗試如下。這樣對嗎?我可以為每個成員詳細資訊添加單獨的別名嗎?如果購買不是會員表的一部分,我可以使用“WHERE purchaseTotal”嗎?
SELECT (memberId AS 'ID', memberFirstName AS 'First Name', memberLastName AS 'Last Name',
memberAddress AS 'Address', memberPhone AS 'Phone')
FROM Member
WHERE purchaseTotal > 1;
uj5u.com熱心網友回復:
在非常基本的術語中,您只能在查詢中使用該列,該列存在于被查詢的表中。
因此,在上面的查詢中,您使用的是purchaseTotal列,但這在Member表中不可用。所以你還需要添加Purchases表。
查詢應該是
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;
注意:
對于兩個表中共有的所有列,您需要指定需要從哪個表中顯示該列。前任,Members.memberId
uj5u.com熱心網友回復:
您正在運行名為 purchaseTotal 的列,但您沒有在正確的表中查找它。purchaseTotal 屬于 Purchases 表。
如果您想從 purchaseTotal 列中獲取值,您應該使用正確的表。
select * from purchases where purchaseTotal > 1;
或者你應該使用“加入”:
SELECT *
FROM Member
INNER JOIN Purchases ON Purchases.memberID=Member.memberID
WHERE Purchases.purchaseTotal > 1;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/367515.html
上一篇:在Firebird中使用selectingroupby陳述句
下一篇:按順序的行分組
