我做一個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