Ref_types तालिका में ReferenceType कॉलम होने के अलावा, आपको एक Reference_ID कॉलम की भी आवश्यकता होती है जो संबंधित तालिका में वास्तविक आईडी को विदेशी कुंजी ।
//ref_types table
ID Article_ID ReferenceType Reference_ID
1 1 book 1
2 1 article 1
3 1 article 2
4 1 book 2
फिर, आप WHILE लूप से बच सकते हैं और जॉइन के साथ MySQL को आपके लिए काम करने दें:
SELECT CONCAT('record ', rt.ID, ': ',
COALESCE(ar.Article_Title, tr.Thesis_Title, br.Book_Title))
FROM ref_types rt
LEFT JOIN article_refs ar
ON rt.ReferenceType = 'article' AND ar.ID = rt.Reference_ID
LEFT JOIN book_refs br
ON rt.ReferenceType = 'book' AND br.ID = rt.Reference_ID
LEFT JOIN thesis_refs tr
ON rt.ReferenceType = 'thesis' AND tr.ID = rt.Reference_ID
परिणाम देता है:
record 1: book1
record 2: article1
record 3: article2
record 4: book2