这个SQL如何实现!by lanni(12分)

  • 主题发起人 主题发起人 烂泥
  • 开始时间 开始时间

烂泥

Unregistered / Unconfirmed
GUEST, unregistred user!
写SQL又遇到问题了。
table1的字段及数据如下:
name lb other
张三 3 100
张三 2 200
李四 3 40
lanni 24 0

table2的字段及数据
name money
张三 1000
李四 2000
lanni 200

需要的结果是
name lb other money
张三 3 100 1000
|-> 张三 2 200
| 李四 3 40 2000
| lanni 24 0 200
|
关键如何让这里不出现1000,
在实际中同样的Name 会有许多,我

SELECT name,lb,other,<br>
(select money FROM table2 where <font color="#FF0000">a.lb=?</font>)<br>
FROM table1 a<br>
我原来写的是<br>
<font color="#FF0000">a.lb=</font>(set rowcount 1 select distinct lb from table1 <br>
where table1.name=table2.name)<br>
但是set rowcount 好象不可用,单独使用道可以。

 
不会吧,没人知道
 
lb什么意思?
 
lb=类别。
 
左外连接的问题:

SELECT table1.name, table1.lb, table1.other, table2.money
FROM table1, table2
WHERE table1 LEFT OUTER JION table2
ON table1.NAME = table2.NAME

SQL/binn/HelpSQl.hlp 有说明
 
SELECT table1.name, table1.lb, table1.other, table2.money
FROM table1, table2
WHERE table1.NAME = table2.NAME
 
还可以用视图实现:
create view myView as
SELECT table1.name, table1.lb, table1.other, table2.money
FROM table1, table2
WHERE table1.NAME = table2.NAME
然后直接调用这个视图就可以了。
select * from myView
 
select 的是一条记录,能没有Money(预定目标)?关注
 
SELECT name,lb,other,
(select money FROM table2 where a.lb=?)
FROM table1 a

我只是希望连接是money只出现在第一次。所以我用了一个土办法。
SELECT name,lb,other,
(select money FROM table2 where a.lb in
(select min(lb) from table1
where table1.name=table2.name))
FROM table1 a
还能用
 
多人接受答案了。
 
后退
顶部