遍历许多表来获取数据(MySQL)

时间:2017-11-17 09:03:35

标签: mysql

首先,我对MySql不熟悉,因此解决方案可能非常简单,而且我没有看到它。

这就是问题所在:我必须得到与某种事件有关的所有价格,而我却遇到了麻烦。

基本上,我必须从我获得事件类型的表格到我得到它的价格的表格。 这是从初始表到结果表的路径:

我这样开始,给出事件类型

std_event.type = <my type of event goes here>

从这里我必须从一个表迭代到另一个比较ID,做这样的事情:

std_event.id = std_concert.event_id
AND
std_concert.id = std_slot.concert_id
AND
std_slot.id = std_slot_deal.slot_id
AND
std_slot_deal.accepted = 1;

SELECT开始的时候,我会有

std_slot_deal.cachet

所以在这一切结束时我会得到一个标记(这是我所说的价格)。

感谢您的帮助!

P.S。如果您需要它,这是我目前的询问:

SELECT std_event.type, std_slot_deal.cachet
FROM std_event
INNER JOIN std_concert, std_slot, std_slot_deal
ON std_event.type = '.$evt_type.'
AND
std_event.id = std_concert.event_id
AND
std_concert.id = std_slot.concert_id
AND
std_slot.id = std_slot_deal.slot_id
AND
std_slot_deal.accepted = 1;

(是的,我通过PHP发送任务,'.$evt_type.'是输入事件类型)

修改 这里有桌子&#39;结构我被要求:

std_event id(I use it to link to event_id in std_concert table), title, description, type(the input data I use), image, ...

std_concert id(I use it to link to concert_id in std_slot table), date, place, street, city, ..., event_id

std_slot id(I use it to link to slot_id in std_slot_deal table), concert_id, due_date, ...

std_slot_deal id, club_id, artist_id, slot_id, ..., accepted, cachet(the result I need)

使用此查询,我想基本上检索具有给定类型的事件的所有缓存。 我知道数据库非常混乱,但我必须努力,我甚至没有文档或任何东西。

1 个答案:

答案 0 :(得分:1)

试试这段代码,这可能对您有所帮助

SELECT std_event.type, std_slot_deal.cachet
FROM std_event
INNER JOIN std_concert ON std_event.id = std_concert.event_id
INNER JOIN std_slot ON std_slot.concert_id = std_concert.id
INNER JOIN std_slot_deal ON std_slot.id = std_slot_deal.slot_id
WHERE std_event.type = '.$evt_type.'
AND
std_slot_deal.accepted = 1;