我做一个MySQL查询,我要加入两个表(项目和国家):如何高效地执行此mysql查询? (加入和检查存在)
+----------------+ +-------------------------+
| Project ID | | id |
+----------------+ +-------------------------+
| Name | | name |
+----------------+ +-------------------------+
| countryid | | lat, long (two columns) |
+----------------+ +-------------------------+
我使用这个查询:
SELECT country.name, country.latitude, country.longitude
FROM projects JOIN country ON projects.countryid = country.id;
精细到现在!接下来会发生的是每个项目都有一个类(TO-DO,DOING,DONE)。每个类都有一个表,其中包含属于每个类的所有项目标识。
结构必须是这样的,因为每个类都有附加信息。只有该项目属于该类别时,该信息才存在。例如,TO-DO类中的项目具有仅在TO-DO表中有效的“start_prevision_date”(来自其他类的字段仍为空)。
我想要做的是为每个项目分配一种颜色,具体取决于他是否要做,做或完成。一个完美的解决方案将是返回值一样的查询:
ResultSet:
+--------------+------------------+-------------------+-------+-------+------+
| country.name | country.latitude | country.longitude | TO-DO | DOING | DONE |
+--------------+------------------+-------------------+-------+-------+------+
| Portugal | 13,4 | 15,6 | 1 | 0 | 0 |
+--------------+------------------+-------------------+-------+-------+------+
可以在多个列一次
1意味着他属于,0表示不属于他。我可以检查并打印正确的颜色!
有没有办法有效地做到这一点?避免使用额外的三个查询。
我希望我很清楚。
为什么需要三个额外的查询?你有所有的信息来决定在PHP中(可能是三个ifs序列)。或者,将TODO,DOING,DONE放在单个字段(可能是ENUM类型)中,因为它们似乎是相互排斥的。 – syck
我只有这些信息,如果我有正确的查询... 否则,我会做一个MySQL查询每支票。 –
请张贴您的完整表格结构 – fusion3k