[英]How to delete one row from a table and multiple rows on another that are related?
[英]Pull multiple rows from one table but only one row from a related table
我目前正在嘗試聯接兩個表,但要防止其中一個表的信息重復。
用戶表具有4列,即uid,名稱,電子郵件和狀態。 stats表有4列,uid,日期,關注,視圖
我想做的是從stats表中提取所有記錄,而從user表中僅提取名稱,電子郵件和狀態值。 我在下面的SQL中遇到的問題是它復制了用戶表中的數據,是否可以解決此問題?
SELECT u.name
, u.email
, u.status
, s.date
, s.follows
, s.views
FROM users u
JOIN stats s
ON u.id = s.uid
WHERE name = :name
如果您不希望每個匹配的統計信息行都與其匹配的用戶行相伴,那么您必須運行兩個查詢:
SELECT u.id, u.name, u.email, u.status FROM users u WHERE name = :name
注意u.id
的結果,因為您將把它用作第二個查詢的參數:
SELECT s.date, s.follows, s.views FROM stats s WHERE s.uid = :uid
您必須了解關系模型有效, 因為每個查詢結果本身就是一個關系。 匹配的數據在每一行中返回,這使JOIN
成為代數的一部分,在此結果可以用作另一個JOIN
或GROUP BY
或其他關系操作的操作數。
您應該閱讀SQL和關系理論:如何按CJ Date 編寫准確的SQL代碼 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.