[TABLE1]
+----------+-------------------+-------------+
| USERNAME | POST | FRUIT |
+----------+-------------------+-------------+
| Bob | 'Hi There' | APPLE |
| Jack | 'Hello' | ORANGE |
| Bob | 'Today is Monday' | APPLE |
| Tony | 'That is ok' | PEAR |
+----------+-------------------+-------------+
[TABLE2]
+----------+-----------+
| USERNAME | FOLLOWING |
+----------+-----------+
| Mike | Jack |
| Jack | Bob |
| Bob | Jack |
| Jack | Mike |
+----------+-----------+
[TABLE3]
+----------+----------- +
| USERNAME | LIKESFRUIT |
+----------+----------- +
| Mike | APPLE |
| Jack | ORANGE |
| Bob | BERRY |
| Jack | PEAR |
+----------+------------+
我正在使用以下查询。它显示了TABLE1中的所有记录,如果jack是跟在TABLE2中的用户或表1中用户名中的jack。
SELECT t1.*
FROM TABLE1 t1
INNER JOIN table2 t2
ON t1.username = t2.following
AND (t2.username = 'jack' OR t1.username = 'jack');
现在我想这样做并显示TABLE1中的记录,如果表3中的插孔LIKESFRUIT。
答案 0 :(得分:0)
SELECT t1.*
FROM TABLE1 t1
INNER JOIN table2 t2
ON t1.username = t2.following
left join tablet3 t3 on t3.username = t1.username
AND (t2.username = 'jack' OR t1.username = 'jack')
AND (t3.username = 'jack' and t3.LIKESFRUIT <> '' and t3.LIKESFRUIT is not null)
;
虽然我不确定“表1中的节目记录”是什么意思
答案 1 :(得分:0)
试试这个
SELECT t1.*
FROM TABLE1 t1
INNER JOIN table2 t2
ON t1.username = t2.following
AND (t2.username = 'jack' OR t1.username = 'jack')
and exists(select * from TABLE3 t3 where t3.username=t1.username)
答案 2 :(得分:0)
SELECT
username, post, fruit
FROM
TABLE1 t1
INNER JOIN
TABLE2 t2
ON
t1.username = t2.username
AND t1.username = t2.follwing
INNER JOIN
TABLE3 t3
ON
t3.LIKESFRUIT = t1.fruit
WHERE
t1.username = 'jack';