我是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
答案 0 :(得分:2)
所以INNER JOIN
和table1
之间有table2
个table2
以及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