我有10個表中的數據有InnoDB引擎檢索從多個表中引用在MySQL一些表
1.一個是state_table
哪些屬性state_id
和state_name
2.另一個表city_table
哪些屬性分別是city_id
和city_name
3.一個表permit_table
哪個屬性是p_id
以上city_id,state_id and permit_id
是對其餘7個表格的引用。
每個表具有STATE_ID,city_id和permit_id參考上面的表格
現在我想提取與各自的城市名和狀態名稱的所有表中的數據(各表可以具有不同的城市名和狀態ID)
即時通訊使用下面的MySQL查詢(我知道這是非常長的方式....)。 請告訴我如何用優化的方法做到這一點?
SELECT p.*,cp.city_name,sp.state_name,
o.*,co.city_name,so.state_name,
t.*,ct.city_name,st.state_name,
............................
.......so on................
............................
FROM permit_table p
JOIN table_city cp ON cp.city_id=p.city_id
JOIN table_state sp ON sp.state_id=p.state_id
JOIN table_one o ON o.permit_id=p.permit_id
JOIN table_city co ON co.city_id=o.city_id
JOIN table_state so ON so.state_id=o.state_id
JOIN table_two t ON t.permit_id=p.permit_id
JOIN table_city ct ON ct.city_id=t.city_id
JOIN table_state st ON st.state_id=t.state_id
..............................................
................so on.........................
..............................................
WHERE p.permit_id=base64_encode(mysql_real_escape_string($_GET[pid]));
感謝大家一直以來的幫助。
@MJB'table_permit' city_id和'table_two' city_id是不同的,那我們怎樣才能使用't.city_id = p.city_id' – diEcho 2010-03-16 12:25:36
我一定誤解了原文。對不起 - 我以爲你一再加入同一列。我的錯。 – MJB 2010-03-16 18:38:46