0

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

我尝试了什么:

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

3 回答 3

0

连接是这样的:

SELECT `something` FROM `table1` t1 JOIN `table2` t2 ON joinitem.t1 = joinitem.t2 ...
                                  ^--------table 1's id---------- ^    ^--column name
于 2013-08-25T05:32:54.543 回答
0

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

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

如果您想从彼此没有关系的表中批量选择数据,您可以使用 aUNION但所有选择的列都需要是相同的类型并且列数需要匹配

SELECT * FROM table1 where firstname LIKE 'x'
UNION ALL 
SELECT * FROM table2 where firstname LIKE 'x'
于 2013-08-25T05:33:31.420 回答
0

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

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

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

于 2013-08-25T05:38:33.607 回答