作者JoeHorn (每天都在公司玩OLG)
看板Database
标题Re: [SQL ] 请问查询语法
时间Thu May 8 12:27:44 2008
DBMS ?
※ 引述《ckmarkhsu (深蓝站长)》之铭言:
: 环境大概是这样,我有两个 Table
: TableA tableAID (主键)
: title
: ....etc
: TableB tableBID (主键)
: tableAID
: done
: TableA 与 TableB 是关联式(唔这样用词对吗?),以 tableAID 做连结
: 一笔 TableA 的纪录会有五笔 TableB 纪录
: 我的查询条件为,只有在 tableA 之所有 tableB done = 1 时,才列出
: 我的写法是
: SELECT * FROM TableA
: LEFT JOIN TableB USING (tableAID)
: WHERE done = 1
: 但这样似乎不对,请问应该如何写才是正确的^^"
SELECT * FROM `TableB`
LEFT JOIN `TableA` ON `TableB`.`tableAID` = `TableA`.`tableAID`
WHERE `TableB`.`done` = '1'
--
Linux is for people who want to know why it works.
Mac is for people who don't want to know why it works.
DOS is for people who want to know why it does not work.
Windows is for people who don't want to know why it does not work.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.173.173.193
1F:推 ckmarkhsu:抱歉,忘记说是 MySQL 4.0.27 05/08 12:53
2F:推 ckmarkhsu:唔 您这个方法会将 tableA 的同一笔记录输出很多次 05/08 12:59
3F:推 ckmarkhsu:不知道能否只输出一笔不重复的纪录 :) 05/08 13:01
4F:推 starjou:反过来用 A LEFT JOIN B 05/08 13:10
5F:推 ckmarkhsu:我 AB 双向都是过了XD 都会跑出好多笔 05/08 13:20
6F:→ JoeHorn:方法是人想的,可以用 UNIQUE() .... 05/08 14:12
7F:推 starjou:tablaID 是 TableA 的主键,怎可能好多笔呢? 05/08 17:55