简体   繁体   中英

Get data from a table with my foreign key?

Currently I want to get data from another table with my foreign key.

I have already setup my foreign key.

I have tables setup like this:

    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),

Where I want to get ALBUM_NAVN via my fk_album_ID

so it will be possible to get it like this:

$row[album_navn]

I have tried to do it, but im lost.

Thanks in advance.

Regards, Kristian

尝试:

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

This query will bring the desired result.

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

Please try this php code as well. This is working and tested. You need to use join in query.

// 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);

请尝试这个查询

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM