我得到3行的db结果(请参见下面的图片链接)。
使用的sql语句是
select tevmkt.ev_mkt_id, tevmkt.name, tevmkt.ev_id, tevoc.ev_oc_id,
tevoc.desc, tevoc.fb_result, tevoc.lp_num, tevoc.lp_den,
tev.start_time
from tevmkt, tev,tevoc
where tevmkt.name = '|Match Result|' and tev.ev_id=tevmkt.ev_id and
tevoc.ev_mkt_id=tevmkt.ev_mkt_id and tev.start_time>=Today;
我想使用php将3行中的每一行连接成字符串,或者使用SQL语句。
因此,前3行将显示为;
632274|Match Result||Draw||Aldershot Town||Arsenal FC|
接下来的3行
637799|Match Result||Draw||Southend United||Oxford United|
答案 0 :(得分:0)
您可以使用concat
基于查询的示例
select CONCAT(tevmkt.ev_mkt_id, tevmkt.name, tevmkt.ev_id, tevoc.ev_oc_id,
tevoc.desc, tevoc.fb_result, tevoc.lp_num, tevoc.lp_den,
tev.start_time)
from tevmkt, tev,tevoc
where tevmkt.name = '|Match Result|' and tev.ev_id=tevmkt.ev_id and
tevoc.ev_mkt_id=tevmkt.ev_mkt_id and tev.start_time>=Today;
答案 1 :(得分:0)
我看到你的模型看起来像这样:
CREATE TABLE tevmkt(
ev_mkt_id INT,
ev_id INT,
name CHAR(25)
);
CREATE TABLE tev(
ev_id INT,
start_time DATETIME YEAR TO SECOND
);
CREATE TABLE tevoc(
ev_mkt_id INT,
desc CHAR(25),
fb_result CHAR(1),
lp_num SMALLINT,
lp_den SMALLINT
);
您tevmkt
与tev
ev_id
加入 1对1 关系。
您使用tevmkt
字段对name
上的记录进行过滤,使用tev
字段过滤start_time
上的记录。
现在,您加入tevmkt
tevoc
与ev_mkt_id
{1}}的一对多关系,我看到 1-to-3 。
您的目标也是 1对1 。看着你的例子我看到每个事件有三行,我得出的结论是:
fb_result
H ; fb_result
A ; 如果是这种情况,您可以使用下一个joins
和过滤器获取结果集:
SELECT
tevmkt.ev_mkt_id,
tevmkt.name,
(
TRIM(tevoc_result.desc) ||
TRIM(tevoc_away.desc) ||
TRIM(tevoc_home.desc)
) AS desc
FROM tevmkt
JOIN tev ON
tev.ev_id = tevmkt.ev_id
JOIN tevoc tevoc_result ON
tevoc_result.ev_mkt_id = tevmkt.ev_mkt_id
JOIN tevoc tevoc_away ON
tevoc_away.ev_mkt_id = tevmkt.ev_mkt_id
JOIN tevoc tevoc_home ON
tevoc_home.ev_mkt_id = tevmkt.ev_mkt_id
WHERE
tevmkt.name = '|Match Result|'
AND tev.start_time >= TODAY
AND tevoc_result.fb_result NOT IN ('H', 'A')
AND tevoc_away.fb_result = 'A'
AND tevoc_home.fb_result = 'H'
;