2015-06-20 30 views
0

我想使用3个或更多表上的连接创建一个select查询。我有3个表格,即t1t2,t3和所有3个表中存在的共同列id。我想选择3表,如果ID存在表中我的查询是这样的。如果所有的3个表存在ID只有当表中存在id时才从表中选择mysql pdo php

Select * from t1 
inner join t2 on t1.id = t2.id 
inner join t3 on t2.id = t3.id 
where t1.id = 1 and t2.id = 1 and t3.id = 1 

该查询返回的值。但如果它不在任何表格示例中,我将不会返回任何内容。我正在寻找一种方式,如果它不t3存在,我应该继续刚从t1选择和t2

回答

0

我觉得这些SQL西港岛线对您有所帮助

Select * from t1,t2,t3 
where t1.id = 1 or t2.id = 1 0r t3.id = 1 

这些SQL也会有用你

SELECT * FROM t1 WHERE t1.id=1 
UNION ALL 
SELECT * FROM t2 WHERE t2.id=1 
UNION ALL 
SELECT * FROM t2 WHERE t2.id=1 

谢谢。

+1

你满意我的回答可以给你一个蓝色刻度和最高投票请。 –

+0

你确定我不需要使用内部连接让我试试看如果我得到了出来我期待放心我会打勾答案按钮 – guradio

0

这是你所需要的?

SELECT * 
FROM t1 
INNER JOIN t2 on t1.id = t2.id 
LEFT JOIN t3 on t2.id = t3.id 
WHERE t1.id = 1 AND t2.id = 1 AND (t3.id = NULL OR t3.id = 1) 
+0

先生它可以是任何表我的意思,如果例如如果在t2中是不可用的,我的意思是没有特定的顺序,id将从表中搞乱。对不起,如果我不能清楚地表达它,我想说的是我可能会在t1或t2或t3甚至t2和t3失踪,这是不可能的id是这种可能 – guradio

+0

@Pekka:请张贴您的样本数据(只是相关的字段)和预期结果。您的要求不明确。 –

+0

确定给我一些时间来创建输出 – guradio

0
SELECT * FROM t1 JOIN t2 ON t1.id = t2.id 
LEFT JOIN t2 ON t1.id= t2.id WHERE t1.id= 1 

这将返回空值t3列,如果id没有出现在t3

+0

我不想返回null我想从t1和t2返回数据,因为他们有id – guradio

相关问题