gpt4 book ai didi

mysql - 根据 Friends 表中的 id 从 User 表中检索数据

转载 作者:行者123 更新时间:2023-11-29 02:52:14 25 4
gpt4 key购买 nike

我有 2 个表 Users 和 Friends。

用户表字段(id、用户名、密码、fname、lname、昵称等)

好友表字段(id, user_id, friend_id)

现在的问题是我正在尝试根据 friend 表 friends_id 访问用户数据。

mysql查询是:

SELECT *
FROM Users
inner JOIN Friends
ON Users.ID=Friends.Friend_ID;

但需要所有的用户数据。

最佳答案

您正在寻找 self referential join :

#app/models/user.rb
class User < ActiveRecord::Base
has_and_belongs_to_many :friends,
class_name: "User",
join_table: :friends,
foreign_key: :user_id,
association_foreign_key: :friend_id
end

您必须更改您的 friends 表以删除 id 列(根据 has_and_belongs_to_many guidelines ):

enter image description here

它将允许您调用:

#config/routes.rb
resources :users do
resources :friends, only: [:create, :destroy] #-> url.com/users/:user_id/friends
end

#app/controllers/friends_controller.rb
class FriendsController < ApplicationController
before_action :set_user

def create
@user.friends << @friend
end

def destroy
@user.friends.delete @friend
end

private

def set_user
@user = User.find params[:user_id]
@friend = User.find params[:id]
end
end

关于mysql - 根据 Friends 表中的 id 从 User 表中检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34491991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com