目前我想用外键从另一个表中获取数据。
我已经设置了我的外键。
我有这样的表设置:
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]
我试过这样做,但我输了。
提前致谢。
问候,克里斯蒂安
答案 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