使用我的外键从表中获取数据?

时间:2013-12-19 08:51:22

标签: php mysql sql

目前我想用外键从另一个表中获取数据。

我已经设置了我的外键。

我有这样的表设置:

    CREATE TABLE IF NOT EXISTS `album` (
  `album_ID` int(11) NOT NULL AUTO_INCREMENT,
  `album_navn` varchar(150) NOT NULL,
  PRIMARY KEY (`album_ID`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;

--
--

INSERT INTO `album` (`album_ID`, `album_navn`) VALUES
(1, 'Nytår'),
(2, 'Berlin'),
(3, 'Færøerne'),
(5, 'TEST');


CREATE TABLE IF NOT EXISTS `billeder` (
  `billeder_ID` int(11) NOT NULL AUTO_INCREMENT,
  `billeder_navn` varchar(150) NOT NULL,
  `billeder_fotograf` varchar(150) NOT NULL,
  `billeder_sti` varchar(150) NOT NULL,
  `fk_album_ID` int(11) NOT NULL,
  PRIMARY KEY (`billeder_ID`),
  KEY `fk_album_ID` (`fk_album_ID`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=54 ;

--
--

INSERT INTO `billeder` (`billeder_ID`, `billeder_navn`, `billeder_fotograf`, `billeder_sti`, `fk_album_ID`) VALUES
(24, 'Vi tester4', 'Nytår', 'full_nytaar.jpg', 1),
(25, '', 'Nytår', 'full_nytaar2.jpg', 1),
(26, '', 'Nytår', 'full_nytaar4.jpg', 1),

我希望通过我的fk_album_ID获取ALBUM_NAVN

所以有可能得到这样的结果:

$行[album_navn]

我试过这样做,但我输了。

提前致谢。

问候,克里斯蒂安

3 个答案:

答案 0 :(得分:0)

尝试:

select * from billeder left join album where billeder.fk_album_ID=album.album_ID

答案 1 :(得分:0)

此查询将带来所需的结果。

SELECT b . * , a.album_navn FROM  `billeder` b, album a WHERE b.fk_album_ID = a.album_ID

请尝试这个PHP代码。这是工作和测试。您需要在查询中使用join。

// CONNECT TO THE DATABASE
$DB_NAME = 'test';
$DB_HOST = 'localhost';
$DB_USER = 'root';
$DB_PASS = '';

$mysqli = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

    //query
$query = " SELECT b . * , a.album_navn FROM  `billeder` b, album a
    WHERE b.fk_album_ID = a.album_ID";
$result = $mysqli->query($query) or die($mysqli->error.__LINE__);
    // show data
if($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo ($row['album_navn']);  
    }
}
else {
    echo 'No record found'; 
}

  //close conn
        mysqli_close($mysqli);

答案 2 :(得分:0)

请尝试此查询

 SELECT * FROM billeder LEFT JOIN album ON billeder.fk_album_ID = album.album_ID