假设我将music
定义为一个表,并为其提供了3列:album
,artist
和track
:
CREATE TABLE music (
id int auto_increment primary key,
album varchar(45) not null,
artist varchar(30) not null,
track int(8)
);
现在我想要另一个包含列的表releasedy
:
'Year' and the table music
我想我必须将表music
中的某些行与另一个表中的表year
中的releasedy
绑定。所以我可以知道哪一年包含哪些音乐。如果我没错,我必须用外键做。我该怎么办?
答案 0 :(得分:4)
您不希望“表中的表”,而是希望将一个表中的记录与查询中另一个表中的记录进行匹配。您可以在此查询之上创建view,并稍后使用该视图,因为它是常规表。
如您所知,建立foreign key relationship,然后JOIN the two tables。
答案 1 :(得分:2)
表中没有“表格”,只有表格和它们之间的关系。
表已发布将有2列,musicId&年。 musicId是音乐表的外键。
加入(正如你所说的bind)这两个:
SELECT *
FROM music m
INNER JOIN releasedy r ON m.id = r.musicId
WHERE year = ..
在这个例子中哪个是矫枉过正,但它说明了你想要的“绑定”。
答案 2 :(得分:0)
class Functions {
public function getRows($sql){
$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result)){
$data[] = $row;
}
return $data;
}
public function getMusicData(){
$data = $this->getRows("SELECT * FROM music");
return base64_encode(serialize($data));
}
}
$func = new Functions();
$music = $func->getMusicData();
$sql = "insert into releasedy (id,Year) values (NULL,'".$music."')";
mysql_query($sql);
$ id ='您的必要ID'; $ read =“ select * from releasey,其中id =”。(int)$ id; $ data = mysql_query($ read); $ musics =反序列化(base64_decode($ data ['Year'])); foreach($ musics as $ music){//做某事}