0

次の列がある表のgenrelinkと他のgenreの説明があります

Genere link table :

titleID
GENID1
GENID2
GENID3
GENID4
GENID5

GenereDesscription table

GENID
DESC

GenereLinkのすべてのGENIDのGenere記述を1回のヒットで取得したい...クエリ

4

3 に答える 3

1

これはあなたのために働くはずです:

SELECT titleID,
    b.description AS description1,
    c.description AS description2,
    d.description AS description3,
    e.description AS description4,
    f.description AS description5
FROM Genere a
    LEFT JOIN GenereDesscription b
        ON a.GENID1 = b.GENID
    LEFT JOIN GenereDesscription c
        ON a.GENID2 = c.GENID
    LEFT JOIN GenereDesscription d
        ON a.GENID3 = d.GENID
    LEFT JOIN GenereDesscription e
        ON a.GENID4 = e.GENID
    LEFT JOIN GenereDesscription f
        ON a.GENID5 = f.GENID;
于 2012-07-30T06:23:16.563 に答える
0
SELECT 
  titleID,
  gdesc1.DESC,
  gdesc2.DESC,
  gdesc3.DESC,
  gdesc4.DESC,
  gdesc5.DESC
FROM 
  genrelink
JOIN 
  GenereDesscription AS gdesc1 ON genrelink.GENID1 = gdesc1.GENID
JOIN 
  GenereDesscription AS gdesc2 ON genrelink.GENID1 = gdesc2.GENID
JOIN 
  GenereDesscription AS gdesc3 ON genrelink.GENID1 = gdesc3.GENID
JOIN 
  GenereDesscription AS gdesc4 ON genrelink.GENID1 = gdesc4.GENID
JOIN 
  GenereDesscription AS gdesc5 ON genrelink.GENID1 = gdesc5.GENID

ただし、スキーマが正規化の恩恵を受けることをお勧めします。これは多対多であり、次のようにモデル化する必要があります。

Titles
id

Genres
id
description

titleGenres
titleID
genreID
于 2012-07-30T06:24:13.550 に答える
0

複数の結合を使用し、IDごとに1回結合します。

SELECT ...
FROM `Genere link` l
INNER JOIN GenereDesscription d1 ON l.GENID1 = d1.GENID
INNER JOIN GenereDesscription d2 ON l.GENID2 = d2.GENID
INNER JOIN GenereDesscription d3 ON l.GENID3 = d3.GENID
INNER JOIN GenereDesscription d4 ON l.GENID4 = d4.GENID
INNER JOIN GenereDesscription d5 ON l.GENID5 = d5.GENID
于 2012-07-30T06:20:55.043 に答える