我很难找到这个答案,所以我希望你的家伙可以帮助我。
我有两张桌子:
event_list ,列'id','name','date'和 event_default ,其中一列'default_id'是外键event_list('id')
这个想法是一次只能有一个事件是默认的,因此event_default只能有一个值(event_list中事件的id)。
我需要一个SELECT语句来获取当前默认事件的event_list数据。但我想在一个SELECT语句中这样做,我认为我可以做,而不是两个。如果有帮助,我正在使用PDO框架。
成功!谢谢。我最终使用了:
$this->connection->query('SELECT * FROM event_list el JOIN event_default ef ON el.id = ef.default_id');
答案 0 :(得分:4)
如果我没有得到错误的要求,就可以这样做:
select el.data from event_list el
join event_default ef on el.id = ef.default_id
我假设表event_default
只包含一行,您可以在其中指定默认事件。因此,在加入event_list
表后,您只会获得一行(如果id
是event_list
的PK)。
答案 1 :(得分:0)
另一种解决方案是使用参数WHERE
代替JOIN
(LEFT JOIN
,RIGHT JOIN
等):
SELECT el.data
FROM event_list el, event_default ef
WHERE el.id = ef.default_id;
如果有两个以上的表:
SELECT t1.field1, t2.field6, t2.field7
FROM table1 t1, table2 t2, table3 t3
WHERE t1.field2 = t2.field3 AND t1.field4=t3.field5;
其中有三个表:table1
,其中包含字段/列field1
,field2
,field4
; table2
,其中包含字段field3
,field6
; table3
,其中包含字段field5
,field7
。如有必要,可以在FROM
部分中使用相同的表名称,然后选择任何字段。
但是JOIN
要快一点,建议使用。