mysql 数据库 关联 查询
现在有三个表 最好不用子查询 (因为改另一个程序,程序上貌似有限制用子查询会显示查询语句有危险。。。)
三个表是forum ,label,related
forum 里有主键ID,label里有主键ID和labelName两列,related里有主键ID和forumID还有labelID。
select forum.ID from forum LEFT JOIN related ON forum.ID = related.forumID LEFT JOIN label ON label.ID = related.labelID where (label = '你好' and label = '你很好') or label = '你不好'
于是现在查询结果是空。。。。。。。
我知道貌似是(label = '你好' and label = '你很好') 这个地方有点冲突
于是乎有没有高手能提供个解决办法什么的。。。。。。
追问:我现在是用related表来关联forum 表和label 表
我最终要查的是forum 的label 中同时有’你好‘和'你很好'的forum
我这样说能明白么?
答案:你到底要查什么?要先确定业务。
(label = '你好' and label = '你很好')逻辑就是有问题的,怎么能label等于“你好”还能等于“你很好”。
其他:label = '你好' and label = '你很好'
label是表名,如果Label是字段,有同时满足两个条件的记录吗? 你的逻辑有问题,labelName不能同时是'你很好'而且'你好'的,所以你的为空是正常的,我改了一个,你看看。
SELECT * FROM forum LEFT JOIN related ON forum.id = related.forumid LEFT JOIN label ON label.id = related.labelid
WHERE label.labelName = '你好' OR label.labelName = '你很好' OR label.labelName = '你不好'; 根据你的例子,这样写
select distinct t1.fid from 表A t1
where
exists (select t2.fid from 表A t2 where t1.fid=t2.fid and t2.labelid=3)
and
exists (select t3.fid from 表A t3 where t1.fid=t3.fid and t3.labelid=2) 150分啊,mark之,明天给你看看 application过程改一下:
Sub application() '申请
Dim cid
cid = Trim(Request("cid"))
If cid = "" Then
Exit Sub
End If
Dim rs
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "Select * From client Where cid = " & cid,conn,3,2
If rs.RecordCount > 0 Then
dim rsg
Set rsg = Server.CreateObject("ADODB.Recordset")
rsg.Open "Select * From [user] Where uName = '" & OldUser & "'",conn,3,1
oldgroup= rsg("uGroup")
rsg.Close
上一个:从mysql里面导出sql,因为200多MB所以导出的时候不行,我用过phpmyadmin
下一个:mysql外键问题。跪求易做图指教。。 Can't create table 'test.homework' (errno: 150)问题