多个表上的MYSQLI SQL查询失败

时间:2012-03-25 17:00:04

标签: sql mysqli

我是SQL新手,我需要从不同的表中检索一些属性,但是。我正在搜索有关用户的图像和详细信息,并以他们的名字搜索。

例如:

SELECT * FROM table1 WHERE name LIKE '%tim%' AND last_name '%smith%'

我的结果中需要以下属性:

我需要表1中的所有细节

帐户ID和表2中的图片

表4中的路径

我试过了

SELECT table1.id table1.name table1.last_name table 2.account_id table4.path FROM table1 table 2 table4 WHERE table4.image_id = table 2.image AND table1.first_name LIKE '%tim%' AND table1.last_name LIKE '%smith%'

我正在考虑将这个问题转化为可以解决这个问题的多个查询,但是我确信这可以在一个查询下完成吗?我只是不确定如何构建它,我已经尝试了很多次,但所有查询都在phpmyadmin中失败

希望有人能指出我正确的方向?以下是我的桌子的一个例子,提前谢谢!

table1
------------
id (pk)
name
last_name

table 2
--------------
account id (pk)
id (fk)
image (holds image id from table 4)

table 3
-----------------
account id (fk)
image id (fk)
date

table 4
--------------------
image id (pk)
path
date

2 个答案:

答案 0 :(得分:2)

所以INNER JOINtable1之间有table2table2以及table4和{}之间JOIN。在MySQL中,INNER JOIN隐含地表示SELECT table1.id, table1.name, table1.last_name, table2.account_id, table4.path FROM table1 JOIN table2 ON table1.id = table2.id JOIN table4 ON table2.image = table4.image_id WHERE table1.name LIKE '%tim%' AND table1.last_name LIKE '%smith%'

WHERE

修改:忘记添加原始{{1}}子句。)

答案 1 :(得分:2)

试试这个:

SELECT t1.*, t2.account_id, t4.path
  FROM table1 t1
       INNER JOIN table2 t2 ON t2.id = t1.id
       INNER JOIN table4 t4 ON t4.image_id = t2.image