[英]select multiple rows with condition for one row mysql
我正在嘗試加入2個表,事件和event_dates,每個事件都有很多日期
事件表包含ID
, name
; event_dates-每天的ID
, event_id
, date
, place_id
是event_dates
表中的event_dates
。 對於不同的日子, place_id
可以不同。
我想顯示本月的事件列表-但只有那些,今天的事件具有place_id = 1。
我應該為此編寫什么SQL查詢? 謝謝
編輯
抱歉,我錯過了一定的結果,我不得不為每個事件顯示event_dates
表。
所以結果會像
1) event id and name with its dates for this month (and for today place_id = 1)
2) other event id and name with its dates for this month (and for today place_id = 1)
etc
SELECT e.*, d.date
FROM events e
JOIN event_dates d
ON e.id = d.event_id
WHERE d.date BETWEEN {d '2013-08-01'} and {d '2013-08-31'}
AND d.place_id = 1
該查詢不起作用,因為,如果在整月中place_id為2、3或其他,並且僅在今天1的情況下,那我將只有event_dates表中僅包含今天行的事件
結果應如下
Aug1 Aug2 Aug3 .... Aug21(today) . . .Aug30
eventName1 placeId placeId placeId placeId placeId
eventName2 placeId placeId placeId placeId placeId
eventName3 placeId placeId placeId placeId placeId
因此,我正在顯示帶有本月信息的偶數列表,但是列出的所有此類事件今天都應該具有placeId = 1。
嘗試這個:
SELECT e.*, d.date
FROM events e
JOIN event_dates d
ON e.id = d.event_id
WHERE d.date BETWEEN {d '2013-08-01'} and {d '2013-08-31'}
AND d.place_id = 1
但是我有一個疑問。 如果您有更多的日子與place_id = 1,您想顯示更多的時間?
嘗試這樣的事情:
SELECT *.events from events
left join event_date
on id.events = event_dates.event_id
where event_dates.dates between '01/08/2013' AND '31/08/2013'
AND event_dates.place_id = 1;
查詢:
SELECT events.id, events.name,event_dates.date,event_dates.place_id
FROM events
INNER JOIN event_dates
ON events.id=event_dates.event_id
WHERE event_dates.date = sysdate and event_dates.place_id=1;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.