我有这个问题:
INSERT INTO Votes (id_post,id_user)
SELECT ?,?
FROM Posts p, Users u
WHERE p.id_user = :author_id
AND u.id = $_SESSION['id']
AND u.active = 1
limit 1;
如您所见,有两个表Posts
,Users
。现在我想知道,那个limit 1
限制了哪个表的结果?一般如何运作?
最佳答案
LIMIT
作用于查询的结果,而不作用于单个表。
您应该学会使用正确的 JOIN
语法。我想它是这样的:
SELECT ?, ?
FROM Posts p JOIN
Users u
ON p.id_user = u.id
WHERE p.id_user = :author_id AND
u.id = $_SESSION['id'] AND
u.active = 1
LIMIT 1;
话虽如此,SELECT ?, ?
确实没有意义。您只能插入常量 作为参数。您可能应该有明确的列名,也许:
SELECT p.id, u.id
FROM Posts p JOIN
Users u
ON p.id_user = u.id
WHERE p.id_user = :author_id AND
u.id = $_SESSION['id'] AND
u.active = 1
LIMIT 1;
关于mysql - 有两个表时限制如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36982165/