你好,我没有什么问题。我的数据库中有两个表。
正如您所看到的,我将所有员工都放在一个标签中,而我在这里要实现的目标是仅在给定标签中显示相关员工。因此,客户服务中的员工不会显示在“销售”选项卡中。
$query = mysql_query("SELECT * "."FROM employees, dept_emp "."WHERE employees.emp_no = dept_emp.emp_no");
感谢您寻求帮助:)
答案 0 :(得分:3)
你的WHERE子句是无用的,因为它只是基本上重述一个JOIN条件。试试这个:
SELECT *
FROM employees AS e
INNER JOIN dept_emp AS de ON e.emp_no = de.emp_no
WHERE de.dept_no = '?'
显然,?
将替换为您实际尝试过滤的dept_no
值。
根据您对seeting查询限制/分页的问题,这是通过SQL LIMIT
子句完成的。该条款可以用几种不同的方式表达。
这首先只返回最大行数:
LIMIT 100 <-- shows first 100 rows from the result set
以下两种语法形式用于分页结果:
LIMIT 0, 100 <-- show first 100 rows from the result set (start at 0 offset, and return a max of 100 rows
LIMIT 100, 100 <-- show rows 101-200 from the result set (start at 100 offset and return max of 100 rows)
或者:
LIMIT 100 OFFSET 0 <-- first 100 rows
LIMIT 100 OFFSET 100 <-- rows 101-200
所以把它们放在一起
SELECT *
FROM employees AS e
INNER JOIN dept_emp AS de ON e.emp_no = de.emp_no
WHERE de.dept_no = '?'
ORDER BY e.emp_no
LIMIT 0,100
请注意,我还添加了ORDER BY
子句。这对于分页非常重要,因为只有常规的无序SELECT
不能保证顺序。如果您尝试在没有ORDER BY
的情况下进行分页,则可能会在多个“页面”中返回相同的行。
答案 1 :(得分:2)
您似乎没有限制部门。 where子句需要一个硬限制,你的位置总是匹配所有内容。另外,你为什么连接你的陈述?它没有破裂。 类似的东西:
$query = mysql_query("SELECT * FROM employees JOIN dept_emp ON employees.emp_no = dept_emp.emp_no WHERE dept_emp.dept_no = 'd007'");
答案 2 :(得分:0)
$dept = ?;
$query = mysql_query("SELECT *
FROM employees, dept_emp
WHERE employees.emp_no = dept_emp.emp_no
AND de.dept_no = $dept
");