2017-11-20 3 views
0

こんにちは、私はmusicbrainzデータベースを使用しています。各国のアーティストを数えても問題はありませんが、どの国でも同じエラーが発生します。私が間違っていたことを誰かに見せてもらえますか?musicbrainz国別アーティスト数をカウントできません

ERROR: column "%u%" does not exist LINE 7: WHERE AREA.NAME LIKE "%u%"

SELECT COUNT(artist.name) 
FROM artist 
JOIN area ON artist.area = area.id 
JOIN label ON area.id = label.area 
JOIN country_area ON area.id = country_area.area 
JOIN release_country ON country_area.area = release_country.country 
WHERE AREA.NAME LIKE "%dom" 
GROUP BY release_country.country 
limit 5; 

UPDATE:私の先生がちょうど来て、それは文句を言わないサブクエリ外で働くと述べ

musicbrainz_db=> SELECT COUNT(artist.name) 
musicbrainz_db-> FROM artist 
musicbrainz_db-> JOIN area ON artist.area = area.id 
musicbrainz_db-> JOIN label ON area.id = label.area 
musicbrainz_db-> JOIN country_area ON area.id = country_area.area 
musicbrainz_db-> JOIN release_country ON country_area.area = 
release_country.country 
musicbrainz_db-> WHERE AREA.NAME LIKE '%dom' 
musicbrainz_db-> GROUP BY release_country.country 
musicbrainz_db-> limit 5; 

ERROR: canceling statement due to statement timeout

select area.name, label_count 
from area 
where label_count in 
(
    select area.name, count(label.id) as "label_count" 
    from area 
    JOIN label on area.id = label.area 
    group by area.name 
); 

サブクエリは正常に動作しますが、メインクエリは失敗しますか?任意のアイデア理由。

+0

のために使用されている単一引用符で試すには、より多くのコード.. plaseを示しました。このクエリを使用するコードを表示 – scaisEdge

+0

ダブルの代わりにシングルクォートを使用してみてください。また、通常は(ほとんどの場合?)SELECT TOPとLIMIT文を使いたいと思っています。 –

+0

私はそれをすべてのコードである内部サーバーに端末で実行しています。 – edwin

答えて

0
SELECT COUNT(artist.name) 
FROM artist 
JOIN area ON artist.area = area.id 
JOIN label ON area.id = label.area 
JOIN country_area ON area.id = country_area.area 
JOIN release_country ON country_area.area = release_country.country 
WHERE AREA.NAME LIKE '%u%' 
GROUP BY release_country.country 
limit 5; 
0

を参照してくださいMySQLの公式ドキュメント

https://dev.mysql.com/doc/refman/5.7/en/string-comparison-functions.html

SELECT COUNT(artist.name) 
FROM artist 
JOIN area ON artist.area = area.id 
JOIN label ON area.id = label.area 
JOIN country_area ON area.id = country_area.area 
JOIN release_country ON country_area.area = release_country.country 
WHERE AREA.NAME LIKE '%dom' 
GROUP BY release_country.country 
limit 5; 

二重引用符は、列名

関連する問題