2013-08-25 49 views
0

我想從多個表格(20個表格)中選擇所有行但它不適用於我,有人可以告訴我選擇前兩個表格嗎?這些表格有重複的列名稱如果有關係。我已閱讀手冊,它說我可以使用JOIN,但我無法得到它。從多個表格中選擇

我的嘗試:

stmt = $mysqli->prepare("SELECT * FROM table1, table2 where firstname LIKE ? ORDER BY id desc"); 
stmt->bind_param('s', $fname); 
stmt->execute(); 

回答

0

加入像這樣:

SELECT `something` FROM `table1` t1 JOIN `table2` t2 ON joinitem.t1 = joinitem.t2 ... 
            ^--------table 1's id----------^ ^--column name 
+0

是不是可以'選擇*'?我有很多行。 – amdvb

+0

@amdvb是的,我只是把它放在例如。 – Class

0

,如果你需要從具有與其他表的關係每個表中的數據提供您的WHERE條款

鏈接
"SELECT * FROM table1, table2 where table1.id = table2.id AND firstname LIKE ? ORDER BY id desc"); 

如果您想從沒有關聯的表中大量選擇數據onship彼此可以用選擇需要的UNION但所有列是同一類型和列數必須與

SELECT * FROM table1 where firstname LIKE 'x' 
UNION ALL 
SELECT * FROM table2 where firstname LIKE 'x' 
+1

這兩個表必須具有相同的列數以允許這樣的UNION – user4035

+0

'相同的類型和列數需要匹配'我不知道你是否沒有閱讀它或... – DevZer0

+0

表沒有任何關係和列不匹配 – amdvb

0

也許,你有列id無論是在表1和表2。嘗試在ORDER BY子句中明確指定表名:

SELECT 
    * 
FROM 
    table1, table2 
WHERE 
    firstname LIKE ? 
ORDER BY 
    table1.id desc 

如果按照table2.id進行排序,請改用它。如果firstname存在於兩個表中,請在WHERE語句中指定表名。