我想從MySQL數據庫中選擇一些數據。MySQL使用子查詢來獲取表名?
我有一張包含業務詳情的表格,以及一張包含交易列表的單獨表格。當我們有多個交易
business_details
id | business_name | trade_id | package_id
1 | Happy News | 12 | 1
這是主表,包含了企業名稱,商標標識和包裝標識
shop_trades
id | trade
1 | newsagents
這包含業務的貿易類型
個configuration_packages
id | name_of_trade_table
1 | shop_trades
2 | leisure_trades
這包含在
尋找交易的表的名稱,因此,基本上,如果我想找到的商品類型(例如,報攤,快餐等)我看看XXXX_trades表。但我首先需要從configuration_packages表中查找XXXX的名稱。
我通常會做的是2個SQL查詢:
SELECT business_details.*, configuration_packages.name_of_trade_table
FROM business_details, configuration_packages
WHERE business_details.package_id = configuration_packages.id
AND business_details.id = '1'
這給了我的數據庫表中查找商品名稱的名字,所以我擡頭看錶的名稱
SELECT trade FROM XXXX WHERE id='YYYY'
其中XXXX
是作爲第一個查詢的一部分返回的表的名稱,而YYYY
是包的id,再次從第一個查詢返回。
有沒有辦法結合這兩個查詢,以便我只運行一個?
我以前使用子查詢,但只在查詢的SELECT側 - 而不是FROM側。
爲什麼你有兩個獨立的餐桌'shop_trades'和'leisure_trades'?而不是一個「交易」? – 2010-10-18 15:07:08
謝謝。有效的問題,但這兩個'包'存儲不同的費率。它們不相同。 – Sjwdavies 2010-10-18 15:13:40
我不認爲你想要做什麼是可能的。我認爲對你而言,唯一的兩個選擇就是繼續進行,或者試着製作適用於這兩個行業的更通用的數據庫結構。 – 2010-10-18 15:17:46