我觉得这个表结构合理。
方法一、
查询的时候分步查询,先查 TB_wupin,得到 wup_id 后,再查TB_peijian
方法二、
一次查询:select * from TB_wupin as w,TB_peijian as p where w.wu_id=p.pei_wupin_id
得到结果集,处理后再显示
方法一、
查询的时候分步查询,先查 TB_wupin,得到 wup_id 后,再查TB_peijian
方法二、
一次查询:select * from TB_wupin as w,TB_peijian as p where w.wu_id=p.pei_wupin_id
得到结果集,处理后再显示
select * from TB_peijian where pei_wupin_id=wup_id
建议你使用英文名称建表
至于查询就简单了.
[,@variable= ...].在语句中除了 SET 之外还可以直接为一个变量赋值。然而在这各情况下,赋值操作符为 := 而不是 =,因为 = 在非 SET 语句中是用于比较的: mysql> SELECT @t1:=(@t2:=1)+@t3:=4,@t1,@t2,@t3;
+----------------------+------+------+------+
| @t1:=(@t2:=1)+@t3:=4 | @t1 | @t2 | @t3 |
+----------------------+------+------+------+
| 5 | 5 | 1 | 4 |
+----------------------+------+------+------+用户变量可以用于表达式所允许的任何地方。注意,这在数字必须明确指定的语境中并不适用,例如,在 SELECT 的 LIMIT 子句中或一个 LOAD DATA 语句的 IGNORE number LINES 的子句中。注意:在一个 SELECT 语句中,各个表达式只有在它被送到客户端时才能被求值。这就意味着,在 HAVING、GROUP BY 或 ORDER BY 子句中,你不能使用一个包含在 SELECT 部份所设置变量的表达式。例如:下面的语句将不会按预期的运作: mysql> SELECT (@aa:=id) AS a, (@aa+3) AS b FROM table_name HAVING b=5;原因是因为 @aa 不会是当前行的值,而是前一个符合条件的行的 id 值。 规则就是在同一语句中决不赋值 和 使用同一个变量。
请问出于什么原因?