根據您的表結構,這個查詢應該工作:
SELECT itemname, 'Brand1' AS brand
FROM maintable
WHERE brand1 = 'Y'
UNION ALL
SELECT itemname, 'Brand2'
FROM maintable
WHERE brand2 = 'Y'
UNION ALL
SELECT itemname, 'Brand3'
FROM maintable
WHERE brand3 = 'Y'
UNION ALL
SELECT itemname, 'Brand4'
FROM maintable
WHERE brand4 = 'Y'
UNION ALL
SELECT itemname, 'Brand5'
FROM maintable
WHERE brand5 = 'Y'
UNION ALL
SELECT itemname, 'Brand6'
FROM maintable
WHERE brand6 = 'Y'
UNION ALL
SELECT itemname, 'Brand7'
FROM maintable
WHERE brand7 = 'Y'
UNION ALL
SELECT itemname, 'Brand8'
FROM maintable
WHERE brand8 = 'Y'
UNION ALL
SELECT itemname, 'Brand9'
FROM maintable
WHERE brand9 = 'Y'
它使用了幾個UNION ALL報表以確保顯示所有記錄。
如果表格的列設置爲Y,它將在結果集的第二列中顯示品牌名稱。這將允許您在單個結果集中顯示項目名稱和品牌列表。
您需要重新命名我的查詢中的itemname列,maintainable以及每個brand1-9列以匹配您的表。
除了9個語句和一個UNION ALL之外,可能還有更好的方法,但這應該起作用。
這是否給你你需要的東西?
你的表格結構是什麼樣的? – bbrumm
品牌在主表中的9列左右設置爲「是/否」值。品牌表中包含品牌的全名,然後是顯示它們適用的是/否列。有幾個「父母」品牌,因此是重複的。 – RSDD
老實說,如果通過使用INSERT創建臨時表的記錄消除連接和循環將是一條更好的路徑,我也對此表示贊同。 – RSDD