我正在尝试从多个表(20个表)中选择所有行,但它对我不起作用,有人可以让我选择前两个吗?如果重要,表格会有重复的列名。我已经阅读了手册,它说我可以使用JOIN
,但我无法得到它。
我尝试了什么:
stmt = $mysqli->prepare("SELECT * FROM table1, table2 where firstname LIKE ? ORDER BY id desc");
stmt->bind_param('s', $fname);
stmt->execute();
答案 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语句中指定表名。