从多个表中选择

时间:2013-08-25 05:30:02

标签: php mysqli

我正在尝试从多个表(20个表)中选择所有行,但它对我不起作用,有人可以让我选择前两个吗?如果重要,表格会有重复的列名。我已经阅读了手册,它说我可以使用JOIN,但我无法得到它。

我尝试了什么:

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

3 个答案:

答案 0 :(得分:0)

加入是这样的:

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

答案 1 :(得分:0)

如果您需要每个表中与另一个表有关系的数据,请在WHERE子句中提供链接

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

如果要从彼此没有关系的表中大量选择数据,可以使用UNION,但所有选择的列必须是相同类型,列数需要匹配

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

答案 2 :(得分:0)

您可能在table1和table2中都有列id。尝试在ORDER BY子句中明确指定表名:

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

如果按table2.id排序,请改用它。如果两个表中都存在firstname,请在WHERE语句中指定表名。