我有三张桌子。一个叫艺术家,一个叫歌,还有一个叫相册。
艺术家与歌曲的关系是一对一的。艺术家也以1对多的方式链接到专辑。歌曲与专辑的链接是多对多的,因此自动创建了桥接表。歌曲表具有艺术家和专辑的导航属性,而专辑具有艺术家和歌曲的导航属性。我想加一首新歌。添加歌曲时,桥接表不会更新,因此我想知道如何在添加时引用与歌曲关联的专辑。
public int CreateNewSong(String name,String songTitle)
{
using(var context = new Myentities())
{
Song theNewSong = new
我有三个模特在我的申请艺术家,专辑和歌曲。
class Artist < ActiveRecord::Base
has_many :albums
has_many :songs, :through => :albums
end
class Albums < ActiveRecord::Base
has_many :songs
belongs_to :artist
end
class Albums < ActiveRecord::Base
belongs_to :albums
end
如何将其呈现为JSON,其中它返回一个艺术家
对于SQL查询,我有一个小问题。所以。我有三张桌子:Artists,专辑和Songs。歌曲属于某张专辑或一些艺术家(这两张中只有一首)。专辑只属于艺术家。我想要收到所有的歌曲的录音,在专辑和没有他们与艺术家的名字在每一个。怎么做?
不起作用的代码:
select song_name, genre, lyrics,
concat(first_name, ' ', last_name) as full_name, album_name
from songs
left join artists on songs.artist_id = songs.artist_id
left j
场景:专辑有多首歌曲。一首歌有多位艺术家,可以没有或一张专辑。
我使用ManyToOne实现了ForeignKey关系。以下是模型:
class Artist(models.Model):
name = models.CharField(max_length=50, verbose_name=u'Artist Name')
bio = models.TextField()
class Album(models.Model):
title = models.CharField(max_length=50, verbose_name=u'Album
mysql:
SELECT *
FROM (select * from songs order by artist asc) as songs2
WHERE artist LIKE 'a%' GROUP BY artist`
mssql:
SELECT *
FROM (select top 1000 * from songs order by artist asc) as songs2
WHERE artist LIKE 'a%' GROUP BY artist
这在mysql中有效,但在mssql中我得到了一个错误:
列‘GROUP s2.id’在
我是一个来自C/C++背景的Java新手。我正在尝试为Android编写一个音乐播放器应用程序,我正在开发一个库扫描功能。我想有一个艺术家->专辑->歌曲格式的分层数据库,其中艺术家有一个名称和一组专辑,一个专辑有一个名称,年份和歌曲组,歌曲有一个标题,曲目编号和文件位置。
我创建了三个类来存储此信息:
public class libraryElementArtist
{
public String name;
public ArrayList<libraryElementAlbum> albums;
}
public class libraryEl
我有以下模式结构
Artist Schema
albums:[Albums Schema]
Album Schema
songs:[Songs Schema]
现在,我想搜索一个歌曲id,并返回歌曲,它的父专辑和艺术家的细节。我不想返回除了匹配的歌曲和专辑。到目前为止,我只能够限制它返回查询的专辑使用位置或elemMatch,但它仍然返回所有的歌曲。有谁知道把歌曲和专辑元素限制在一个元素上的方法吗?