簡體   English   中英

如何將MySQL數據庫表的一行鏈接到另一個表的另一行

[英]How to link a row of MySQL database table to another row in another table

我知道這沒有什么意義...而且我是使用MySQL的新手...在這里我要做的是將一個表行鏈接到另一個表行...例如,有兩個表。一個表用於用戶注冊,同一表也用於登錄...,下一個表用於用戶帖子..例如狀態更新和所有...

這就是我想要的...

user_log_info:-
id ( primary )
firstname
lastname
username
email
password

posts:-
id ( primary )
userposts
posted_by
date_post

所以你可以看到,我想user_log_info表用戶名被自動復制到posts posted_by行......我不知道我怎么可以歸檔此...

您沒有提供足夠的信息來提供完整的答案,但是我會盡力提供您所提供的信息。

+-----------------+ +-----------------+
| users_log_info  | | posts           |
+-----------------+ +-----------------+
| int ID (primary)| | int ID (primary)|
+-----------------+ | int posted_by   |
                    +-----------------+

(我省略了與您似乎想要執行的操作無關的字段,我只是在簡化它)

posted_by是一個非官方的foreign key ,或引用另一個表的主鍵。

要插入,您可以按照以下步驟操作:

INSERT INTO posts(...., posted_by) VALUES (...., user.ID)

....引用您的所有其他信息插入

然后,查找有關發布內容的人的信息:

SELECT * FROM users_log_info WHERE ID = Post.posted_by

或者,如果您想按用戶查找所有帖子:

SELECT * FROM posts WHERE posted_by = user.ID

因此,如果用戶ID為3的Bob想要發布“ Hi”,則您可以執行以下操作:

INSERT INTO posts(content, posted_by) VALUES('Hi', bob.ID)

然后在輸出帖子時,您可以執行以下操作:

post = (however you choose the post to put on the page)
userPosted = SELECT * FROM users_log_info WHERE ID = post.posted_by

print post.content + " posted by: " userPosted.Name

本質上,字段“ posted_by”是用來“發布”任意數字,但是您知道它鏈接到或引用了用戶。 它是通過引用“ ID”(這是users_log_info的主鍵)來實現的,因此,當您要從users_log_info獲取信息時,您所需要做的就是選擇ID與“ posted_by”相對應的條目。 我確實建議將其命名為posterID ,以便於識別。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM