我有两张桌子,公司和开放时间。
公司 id |名称
openhours id |一天|公司|打开|靠近
openhours每个公司有7行,每天开放时间('mon','tue','wed'等)
基本上我想在星期三(星期三)和星期四(星期四)取得开放时间
SELECT * FROM openhours WHERE company=1 AND day='wed'
SELECT * FROM openhours WHERE company=1 AND day='thu'
我正在寻找的是在同一个查询中同时获得公司和公司的开放时间,但到目前为止,我只能获得一行开放时间
SELECT company.*, openhours.* FROM company INNER JOIN openhours ON openhours.company=company.id WHERE openhours.day == 'wed' OR openhours.day == 'thu
有任何帮助吗?已经坐了很长一段时间了
修改 这就是openhours表的样子(公司ID 1)
id |一天|公司|打开|靠近
1 mon 1 08:00 16:00
2 tue 1 08:00 16:00
3 wed 1 10:00 16:00
4 thu 1 11:00 15:00
5 fri 1 08:00 16:00
6 sat 1 11:00 14:00
7 sun 1 11:00 14:00
答案 0 :(得分:2)
SELECT
company.*, openhours.*
FROM
company
INNER JOIN
openhours ON openhours.company=company.id
WHERE
company.id = 1 AND
openhours.day IN ('wed', 'thu')
;
你说你还有一排,所以我认为还有一些问题,因为它在this SQLFiddle中对我有用。你是怎么称呼这个查询的?您的执行或环境可能存在问题。您也可以尝试LEFT JOIN
,但这应该是INNER
。
答案 1 :(得分:1)
SELECT company.*, openhours.*
FROM company INNER JOIN openhours ON openhours.company=company.id
WHERE (day='wed' OR day='thu')
答案 2 :(得分:0)
怎么样:
SELECT * FROM openhours WHERE company=1 AND (day='wed' OR day='thu');
或:
SELECT company.*, openhours.* FROM company INNER JOIN openhours ON openhours.company = company.id WHERE openhours.day IN ('wed', 'thu')
您的查询有'=='(语法错误)。
答案 3 :(得分:0)
Select *
from company c, openhours o
where c.id=o.company and c.id=1 and o.day='wed' or o.day='thu';