我有三张桌子
Table1
userid mobile
1 123456789
2 321654987
3 987456321Table2
revid userid revdes mobile
1 2 ASD 123456789
2 2 DSA 123456348
3 1 QWE 963258124Table3
revid revloc
1 asdf
3 dsaq我希望输出像这样的userid=2
userid revid revdes mobile revloc inTable1
2 1 ASD 123456789 asdf true
2 2 DSA 123456348 NULL false上述输出列第1行元素中的inTable1为真,因为移动"123456789“可在Table1上使用。
我正在使用MySQL。
发布于 2016-05-06 11:41:09
您可以使用一系列左联接来实现您想要的结果。查询的棘手之处在于知道如何使用移动号码而不是用户id加入Table1和Table2。
SELECT t2.userid, t2.revid, t2.revdes, t2.mobile, t3.revloc,
t1.mobile IS NOT NULL AS inTable1
FROM Table2 t2 LEFT JOIN Table1 t1
ON t2.mobile = t1.mobile
LEFT JOIN Table3 t3
ON t2.revid = t3.revid
WHERE t2.userid = 2按照下面的链接运行演示:
发布于 2016-05-06 11:42:13
您可以使用left join,只需检查结果列是否为null:
SELECT t2.userid, t2.revid, t2.revdes, t2.mobile, t3.revloc,
t1.mobile IS NOT NULL AS inTable1
FROM table2 t2
JOIN table3 t3 ON t2.revid = t3.revid
LEFT JOIN table1 t1 ON t2.mobile = t1.mobile发布于 2016-05-06 11:43:31
下面是一个希望能有所帮助的查询:
SELECT Table1.userid, Table2.revid, Table2.revdes, Table2.mobile, Table3.revloc, IF(Table1.mobile = Table2.mobile, true, false) as inTable1
FROM Table1
JOIN Table2 ON Table2.userid = Table1.userid
JOIN Table3 ON Table2.revid = Table3.revid https://stackoverflow.com/questions/37071402
复制相似问题