ich eine ziemlich lange SQL-Abfrage haben:MySQL - und Abfrage auf verknüpften Tabelle
SELECT *, content.contentID AS thisID
FROM content
LEFT JOIN link_keywords ON content.contentID = link_keywords.contentID
LEFT JOIN link_countries ON content.contentID = link_countries.contentID
LEFT JOIN link_sections ON content.contentID = link_sections.contentID
WHERE status = '1' AND typeID = '1'
GROUP BY contentID
ORDER BY creationDate DESC
ich wieder einen Satz von Ergebnissen, was ich tun möchte ist, alle Ergebnisse anzuzeigen, in dem sectionID
(die von der kommt link_sections join) ist gleich 3 oder 4. Mit anderen Worten, alle Ergebnisse, die in Abschnitt 3 und 4 sind.
Die folgende Abfrage gibt nichts zurück, vermutlich weil sie nach einem einzelnen sucht Reihe mit sectionID
gleich 3 und 4. Was ich brauche, ist jede content.contentID
mit sectionID
gleich 3 und 4.
SELECT *, content.contentID AS thisID
FROM content
LEFT JOIN link_keywords ON content.contentID = link_keywords.contentID
LEFT JOIN link_countries ON content.contentID = link_countries.contentID
LEFT JOIN link_sections ON content.contentID = link_sections.contentID
WHERE status = '1' AND typeID = '1' AND (sectionID = '3' AND sectionID = '4')
GROUP BY contentID
ORDER BY creationDate DESC
* Was ich brauche, ist jede content.contentID mit sectionid gleich 3 und 4. * Das ist unmöglich. Meinst du * zwei * Zeilen, die die gleiche content.contentID haben und sectionID gleich 3 bzw. 4? –
Hallo. Ja, stellen Sie sich also content.contentID gleich 1 vor (dies ist ein einzelner Artikeldatensatz). Dieser Artikel kann in vielen verschiedenen Abschnitten sein. Ich möchte also nur Artikelsätze, die sich in den Abschnitten 3 und 4 befinden. – Chris
Können Sie Ihr Schema posten? –