表carinfo
carlicense varchar 20
userid int 表userinfo
userid int
username varchar 10
表 cardinfo
cardtype varchar 10
cardcode varchar 10
userid int
(一张卡只对一辆车)
以上是表的部分字段 一张卡对应一个人一辆车,当然一个人可能有n张卡n辆汽车 现在我要查 这张卡的全部信息,和对应的人和车子的信息
carlicense varchar 20
userid int 表userinfo
userid int
username varchar 10
表 cardinfo
cardtype varchar 10
cardcode varchar 10
userid int
(一张卡只对一辆车)
以上是表的部分字段 一张卡对应一个人一辆车,当然一个人可能有n张卡n辆汽车 现在我要查 这张卡的全部信息,和对应的人和车子的信息
From cardinfo a
Inner join userinfo B ON A.UserID=B.UserID
Inner Join carinfo C On B.UserID=C.UserID
LEFT JOIN
RIGHT JOIN
FULL JOIN
希望樓主查下資料,看看這幾個的用法...
select carinfo.carlicense,aa.cardtype ,aa.username from (select CardInfo.* ,userinfo.username from cardinfo left join
userinfo on cardinfo.userid=userinfo.userid) aa left join carinfo on aa.userid= carinfo.userid
如果对的话 效率如何
用left join 是可以不写条件的.
所以我的写法是:
SELECT carinfo.carlicense,
cardinfo.cardtype ,
userinfo.username
FROM cardinfo LEFT join
carinfo LEFT join
userinfo
WHERE cardinfo.cardcode = "0001"
from
(select a.userid
from arinfo as a,
(select userid
from userinfo
where userid in (select userid from cardinfo where userid='***')
)as b
where a. userid=b.userid )as c