当前位置:数据库 > MySQL >>

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)问题

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,