2013-11-29 12 views
2

我有两张桌子。我想从第一个表中获取第二个表中对应于一行值的数据。如何从一个表中获取数据并在同一个查询中使用这些值?

我有两个表宣传片&店

所以我想要做的是首先从拉PROMOS第一,并基于该行的一个随机行还可以获得从商店对应的数据。

在PROMOS表=存储 “类别” 列(第二个表的名称)

promos.category =存储


宣传片具有以下列:ID,图像,类别,STOREID

存储是具有列中的第二表:SID,STORENAME,storeimage

行中PROMOS表:1,promopic.png,专卖店,2

行商店表:2,购物者,shoppers.png,

-


UPDATE: 什么,我试图做的是 “专卖店” 的名字是在一排茂德。所以第二个表,我从选择数据的名称是未知的,直到我们从电视节目预告表中第一个得到它..

我已经试过这样的事情

SELECT * FROM promos, promos.category WHERE promos.category.sid ='promos.storeid'

+0

是否阻止在2个步骤中使用php做到这一点? “sql only”听起来像是一个苦涩的复杂因素,考虑到你将php添加到你的标签列表中... – hanzo2001

回答

0

请尝试以下;)

set @table_name = (SELECT category FROM promos where id=1); --change the 1 to whatever 
set @sql = CONCAT("select * from ",@table_name); 
PREPARE query FROM @sql; 
EXECUTE query; 

上述假设要选择一切从我们从promos.category

+0

我想要做的是“商店”的名称是在promos中的一行。所以我选择数据的第二个表的名字是未知的,直到我们从promos表中第一个得到它。 – ASH

+0

@ASH你有点混乱,请检查更新后的答案。 – deadlock

+0

thx ..我如何插入我的PHP文件..? – ASH

-1
Select * FROM promos p LEFT JOIN stores s 
ON s.sid = p.category 
WHERE p.category = {somevalue} 
拿到表名

这里 s.id代表{column name}STORE它连接到PROMOS表。

相关问题