2010-03-25 99 views
0

對不起,我敢肯定,對於大多數人來說,這是一個基本問題,但是我有一個來自不同表格的表格列,它們具有相同的名稱,試圖從同一查詢中的兩個表中進行選擇。複雜的SQL查詢...返回的變量的名稱

好了,這是我的代碼:

$q_value = $mdb2->quote($_POST['query']); 
$field = $_POST['field']; 
$sql = "SELECT m.*, l.name FROM memberlist m, mail_lists l 
     WHERE m.$field=$q_value 
     AND l.id = m.list 
     ORDER BY m.id"; 
$l_list = $mdb2->queryAll($sql, '', 'MDB2_FETCHMODE_ASSOC'); 

表會員有以下欄目: ID,電子郵件列表,性別,姓名

和表mail_lists有以下欄目:

: ID,名稱

運行查詢,我後來通過與一個foreach結果像這樣循環後

問題是,mail_lists中的列'name'是指列表的名稱,而memberlist中的列'name'是指成員的名稱。

當我以後訪問$ l-> name(在foreach中)時,我會得到m.name還是l.name?此外,我如何訪問其他人?

或者我只需要做兩個單獨的查詢?

回答

3

爲什麼你不能簡單地用:

SELECT m.*, l.name as l_name FROM ... 

然後namel_name區分?


這是一個風格問題,那麼其他人可能不同意,但我從來沒有使用*查詢,傾向於更喜歡明確的列規範。這實際上不是在你的情況比,如果你想要做的其他問題:

SELECT m.*, l.* FROM ... 

這兩個名稱之間仍然進行區分。通過明確的色譜柱規格,您可以爲每個色譜柱添加一個as子句,以提供唯一的名稱。

+0

完美! 現在我覺得自己像個真正的假人。哈哈 謝謝! – Polyonymy 2010-03-25 01:33:35