![](/img/trans.png)
[英]How can I combine data from form and from three mysql tables to insert data in another table with php?
[英]How do I obtain data from three tables in MySQL?
我有三個表:
我已經設法加入了前兩個表,但是如何將gallery_tags表添加到以下查詢中?
SELECT *
FROM gallery_items
RIGHT JOIN gallery_album_items
ON gallery_items.id=gallery_album_items.id
WHERE gallery_items.name LIKE '%{$term}%'
OR gallery_items.description LIKE '%{$term}%'
本質上我想添加:
OR gallery_tags.tag LIKE '%{$term}%'
表結構
gallery_items
id name description
12 Sharon This is sharon's description
26 Rhett This is rhett's description
33 Lincoln This is lincoln's description
gallery_album_items
id album
12 14
26 12
33 7
gallery_tags
id item tag
23 12 blonde
43 26 tall
3 33 glasses
本質上,我想要搜索“ blonde”的結果: Sharon是金發女郎 ,在專輯#14中 。
(您不必提供echo語句。這只是一個顯示結果的示例。)
編輯-最終答案
SELECT DISTINCT gallery_items.id
FROM gallery_items
RIGHT OUTER JOIN gallery_album_items ON gallery_items.id = gallery_album_items.id
LEFT JOIN gallery_tags ON gallery_items.id = gallery_tags.item
WHERE gallery_items.active != '0'
AND (gallery_items.name LIKE '%blonde%'
OR gallery_items.description LIKE '%blonde%'
OR gallery_tags.tag LIKE '%blonde%'
SELECT *
FROM gallery_items
RIGHT OUTER JOIN gallery_album_items
ON gallery_items.id=gallery_album_items.id
LEFT OUTER JOIN gallery_tags
ON gallery_tags.id = gallery_album_items.id
WHERE gallery_items.name LIKE '%{$term}%'
OR gallery_items.description LIKE '%{$term}%'
OR gallery_tags.tag LIKE '%{$term}%'
對這個
SELECT *
FROM gallery_items
RIGHT JOIN gallery_album_items
ON gallery_items.id=gallery_album_items.id
LEFT JOIN gallery_tags
ON gallery_tags.id = gallery_items.id
WHERE gallery_items.name LIKE '%{$term}%'
OR gallery_items.description LIKE '%{$term}%'
SELECT *
FROM gallery_items
RIGHT JOIN gallery_album_items
ON gallery_items.id=gallery_album_items.id
LEFT JOIN gallery_tags on gallery_items.id on gallery_tags.id
WHERE gallery_items.name LIKE '%{$term}%'
OR gallery_items.description LIKE '%{$term}%'
請嘗試一下
select gi.name, gai.ablum, gt.tag
from
gallery_items as gi JOIN gallery_album_items as gai
on gt.id=gai.id
Join gallery_tags as gt
on gi.id=gt.items
除了使用表名,還可以使用別名來編寫聯接查詢,以便在考慮邏輯時更好地理解。 我嘗試了以下一項,希望對您有所幫助。
創建表g_i(id int,name varchar(20),descp nvarchar(max))
插入g_i值(12,'asf 12','description 12')插入g_i值(26,'asf 26','description 26')插入g_i值(33,'asf 33','description 33' )從g_i選擇*
創建表g_a(id int,專輯varchar(20))插入g_a值(12,'相冊12')插入g_a值(26,'相冊26')插入g_a值(33,'相冊33')選擇*來自g_a
創建表g_t(id int,item int,標簽nvarchar(40))插入g_t值(23,12,'標簽12')插入g_t值(43,26,'標簽26')插入g_t值(3 ,33,'tag 33')從g_t選擇*
選擇 *
從g_i作為i右加入g_a作為ON i.id = a.id向左加入g_t作為t在t.item = i.id上
i.name之類的'%t%'或i.descp之類的'%t%'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.