我正在尝试从多个表(20 个表)中选择所有行,但它对我不起作用,有人可以告诉我选择前两个吗?如果重要,这些表具有重复的列名。我已经阅读了手册,它说我可以使用JOIN
,但我无法得到它。
我尝试了什么:
stmt = $mysqli->prepare("SELECT * FROM table1, table2 where firstname LIKE ? ORDER BY id desc");
stmt->bind_param('s', $fname);
stmt->execute();
连接是这样的:
SELECT `something` FROM `table1` t1 JOIN `table2` t2 ON joinitem.t1 = joinitem.t2 ...
^--------table 1's id---------- ^ ^--column name
如果您需要与另一个表有关系的每个表中的数据,请在您的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'
可能,您id
在 table1 和 table2 中都有列。尝试在 ORDER BY 子句中明确指定表名:
SELECT
*
FROM
table1, table2
WHERE
firstname LIKE ?
ORDER BY
table1.id desc
如果您按 table2.id 排序,请改用它。如果两个表中都存在 firstname,请在 WHERE 语句中指定表名。