【发布时间】:2011-07-28 08:00:06
【问题描述】:
他来这里是为了迷惑他的一天! (从现在开始应该是我的手柄)
我很困惑,非常迷茫。
我需要弄清楚如何创建一个 select 语句来让 FriendID 与那里的 UserID 相关联
您可以看到 FriendID 与我的 User 表的 UserID 相关,因此如果 FriendID = 2 则显示 UserID 2 的详细信息。
我想要做的是,如果我的用户 ID 为 1,我想显示我所有的朋友,我的用户 ID 是由会话设置的,
我需要做的是找出我的朋友是谁,所以从 SessionID = UserID 的朋友中选择 FriendID,然后如何找出 FriendsID 在 User 表中属于谁,并显示他的名字、第二名和他的图片路径。
非常混乱...
我的表结构如下:
所以总结一下我在选择命令中需要什么:
找出谁是我的朋友(当前会话 UserID 有 FriendID) 显示自己的UserID相关的friendID的FirstName、SecondName、图片路径
例子:
我 (userID=1) 有 FriendID 2 = UserID 2 所以选择 firstname, secondname from User where UserID=2
我的表结构可能存在关系问题,但不确定。
希望你能理解我的困惑:
编辑对于那些看不到我的数据库图像的人
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';
CREATE SCHEMA IF NOT EXISTS `gymwebsite2` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
USE `gymwebsite2` ;
-- -----------------------------------------------------
-- Table `gymwebsite2`.`User`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `gymwebsite2`.`User` (
`UserID` INT NOT NULL AUTO_INCREMENT ,
`Email` VARCHAR(245) NULL ,
`FirstName` VARCHAR(45) NULL ,
`SecondName` VARCHAR(45) NULL ,
`DOB` VARCHAR(45) NULL ,
`Location` VARCHAR(45) NULL ,
`Aboutme` VARCHAR(1045) NULL ,
`username` VARCHAR(45) NULL ,
`password` VARCHAR(45) NULL ,
PRIMARY KEY (`UserID`) )
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `gymwebsite2`.`WallPosting`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `gymwebsite2`.`WallPosting` (
`idWallPosting` INT NOT NULL AUTO_INCREMENT ,
`UserID` INT NOT NULL ,
`Wallpostings` VARCHAR(2045) NULL ,
PRIMARY KEY (`idWallPosting`) ,
INDEX `fk_WallPosting_User` (`UserID` ASC) ,
CONSTRAINT `fk_WallPosting_User`
FOREIGN KEY (`UserID` )
REFERENCES `gymwebsite2`.`User` (`UserID` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `gymwebsite2`.`Pictures`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `gymwebsite2`.`Pictures` (
`idPictures` INT NOT NULL AUTO_INCREMENT ,
`UserID` INT NOT NULL ,
`picturepath` VARCHAR(1045) NULL ,
PRIMARY KEY (`idPictures`) ,
INDEX `fk_Pictures_User1` (`UserID` ASC) ,
CONSTRAINT `fk_Pictures_User1`
FOREIGN KEY (`UserID` )
REFERENCES `gymwebsite2`.`User` (`UserID` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `gymwebsite2`.`Friends`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `gymwebsite2`.`Friends` (
`idFriends` INT NOT NULL AUTO_INCREMENT ,
`UserID` INT NOT NULL ,
`FriendID` INT NOT NULL ,
PRIMARY KEY (`idFriends`) ,
INDEX `fk_Friends_User2` (`FriendID` ASC) ,
INDEX `fk_Friends_User1` (`UserID` ASC) ,
UNIQUE INDEX `FriendID_UNIQUE` (`FriendID` ASC) ,
CONSTRAINT `fk_Friends_User2`
FOREIGN KEY (`FriendID` )
REFERENCES `gymwebsite2`.`User` (`UserID` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Friends_User1`
FOREIGN KEY (`UserID` )
REFERENCES `gymwebsite2`.`User` (`UserID` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
【问题讨论】:
-
您的图片未加载。请描述您的表结构。
-
嗯奇怪?我会重新编辑一秒钟
-
图像问题已解决。您可以在我的回答中找到解决方案。