2017-04-12 64 views
0

我只是想知道这是否可能我找到了一些在这里计算器,但我不明白的不同以及其他选择(选择)代码如何选择和选择相同的查询?

tblproducts

motherboard,  cpu, 
Asus_board   intel 
MSI_board   amd 

哪里在此表中他们也有相同的名字

兼容性

motherboard,  form_factor, 
Asus_board   ATX 
MSI_board   AT 

查询我有

$query = "Select from tblproducts where category = 'motherboard' AND Select from compatibilty where form_factor = 'ATX'"; 

我做了不同的表,使主板的兼容性,我真的需要tblproducts因为该表有产品图片

我想输出将只过滤那些ATX form_factor将会输出 谢谢你的理解不擅长编程

输出将会是Asus_board,因为它只有ATX fo rm_factor

+0

如果您共享您的预期输出,则有助于了解你想要什么。 – Sadikhasan

+0

也许我在做查询时不好:) –

回答

1
SELECT tblproducts.motherboard, tblproducts.cpu, compatibility.form_factor 
FROM tblproducts, compatibility 
WHERE compatibility.form_factor = 'ATX' 
AND tblproducts.motherboard = compatibility.motherboard 

如果你只是想tblproducts列,只是删除从SELECT条款的compatibility表的任何引用(但把它留在FROMWHERE条款)。

+0

正确的答案,虽然对于像@Aze Ronquillo这样没有经验的用户来说,Oracle风格的加入可能有点混乱! – rpd

+0

谢谢!我很感谢你的帮助,我试着去理解这个我曾经体验过Oracle的人。 –

2

只需加入那些表,并给出condtion。

select a.motherboard from tblproducts a join compatibility b on (a.motherboard=b.motherboard) 
where b.form_factor='ATX' 
+2

只要'form_factor'只在其中一个表上;为了避免含糊不清,我会去做'WHERE b.form_factor ...'。 –

+1

是的,我编辑它,以避免歧义。谢谢@蒂姆刘易斯 – Rams